diff --git a/src/RichTextEditor.js b/src/RichTextEditor.js index 51e212ef..56992111 100644 --- a/src/RichTextEditor.js +++ b/src/RichTextEditor.js @@ -388,6 +388,22 @@ export default class RichTextEditor extends Component { this._sendAction(actions.blurContentEditor); } + undo(){ + this._sendAction(actions.undo) + } + + redo(){ + this._sendAction(actions.redo) + } + + fontSize(size){ + this._sendAction(actions.fontSize,size) + } + + font(font) { + this._sendAction(actions.font, font) + } + setBold() { this._sendAction(actions.setBold); } diff --git a/src/WebviewMessageHandler.js b/src/WebviewMessageHandler.js index 05a66ea6..60fc292c 100644 --- a/src/WebviewMessageHandler.js +++ b/src/WebviewMessageHandler.js @@ -170,6 +170,18 @@ export const InjectedMessageHandler = ` case '${actions.setPlatform}': zss_editor.setPlatform(action.data); break; + case '${actions.undo}': + zss_editor.undo(action.data); + break; + case '${actions.redo}': + zss_editor.redo(action.data); + break; + case '${actions.fontSize}': + zss_editor.setFontSize(action.data); + break; + case '${actions.font}': + zss_editor.setFontFamily(action.data); + break; } }; } diff --git a/src/const.js b/src/const.js index 653b43f8..7c94b5fb 100644 --- a/src/const.js +++ b/src/const.js @@ -52,7 +52,11 @@ export const actions = { init: 'ZSSS_INIT', setEditorHeight: 'SET_EDITOR_HEIGHT', setFooterHeight: 'SET_FOOTER_HEIGHT', - setPlatform: 'SET_PLATFORM' + setPlatform: 'SET_PLATFORM', + undo: 'undo', + redo: 'redo', + fontSize: 'font-size', + font: 'font', }; diff --git a/src/editor.html b/src/editor.html index 1b30f937..82fec3ad 100644 --- a/src/editor.html +++ b/src/editor.html @@ -1217,7 +1217,9 @@ zss_editor.setFontFamily = function(fontFamily) { - zss_editor.restorerange(); + if (zss_editor.currentSelection) { + zss_editor.restorerange(); + } document.execCommand("styleWithCSS", null, true); document.execCommand("fontName", false, fontFamily); document.execCommand("styleWithCSS", null, false); @@ -1225,6 +1227,11 @@ } + zss_editor.setFontSize = function (em) { + document.execCommand('fontsize', true, em); + zss_editor.enabledEditingItems(); + } + zss_editor.setTextColor = function(color) { if(zss_editor.currentSelection) {