From 265e4267b8586c622e742ff6ae764e5673f9d61f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 26 Jul 2018 15:00:43 +0100 Subject: [PATCH 1/2] remove faulty onBlur/onFocus code which caused selection to rollback Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/rooms/MessageComposerInput.js | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index f455db7fbc..111c73284c 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -1544,18 +1544,6 @@ export default class MessageComposerInput extends React.Component { this.handleKeyCommand('toggle-mode'); }; - onBlur = (e) => { - this.selection = this.state.editorState.selection; - }; - - onFocus = (e) => { - if (this.selection) { - const change = this.state.editorState.change().select(this.selection); - this.onChange(change); - delete this.selection; - } - }; - focusComposer = () => { this.refs.editor.focus(); }; @@ -1601,8 +1589,6 @@ export default class MessageComposerInput extends React.Component { onChange={this.onChange} onKeyDown={this.onKeyDown} onPaste={this.onPaste} - onBlur={this.onBlur} - onFocus={this.onFocus} renderNode={this.renderNode} renderMark={this.renderMark} // disable spell check for the placeholder because browsers don't like "unencrypted" From f264075369b2fdac3c9c2d1580e19a4b39b118e8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 26 Jul 2018 17:11:32 +0100 Subject: [PATCH 2/2] null-guard history properly Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/rooms/MessageComposerInput.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index 111c73284c..267db89e8c 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -1255,16 +1255,14 @@ export default class MessageComposerInput extends React.Component { let editorState; const historyItem = this.historyManager.getItem(delta); - if (historyItem) { - if (historyItem.format === 'rich' && !this.state.isRichTextEnabled) { - editorState = this.richToMdEditorState(historyItem.value); - } - else if (historyItem.format === 'markdown' && this.state.isRichTextEnabled) { - editorState = this.mdToRichEditorState(historyItem.value); - } - else { - editorState = historyItem.value; - } + if (!historyItem) return; + + if (historyItem.format === 'rich' && !this.state.isRichTextEnabled) { + editorState = this.richToMdEditorState(historyItem.value); + } else if (historyItem.format === 'markdown' && this.state.isRichTextEnabled) { + editorState = this.mdToRichEditorState(historyItem.value); + } else { + editorState = historyItem.value; } // Move selection to the end of the selected history