From 3e05bf19c59a401efe53f39eed7be38aafb3b41f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 11 Jul 2018 16:30:45 +0100 Subject: [PATCH] hide autocomplete when moving caret to match existing behaviour Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/rooms/MessageComposerInput.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index d0079309e3..7b9fb89404 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -115,6 +115,15 @@ function onSendMessageFailed(err, room) { }); } +function rangeEquals(a: Range, b: Range): boolean { + return (a.anchorKey === b.anchorKey + && a.anchorOffset === b.anchorOffset + && a.focusKey === b.focusKey + && a.focusOffset === b.focusOffset + && a.isFocused === b.isFocused + && a.isBackward === b.isBackward); +} + /* * The textInput part of the MessageComposer */ @@ -469,8 +478,7 @@ export default class MessageComposerInput extends React.Component { } } - onChange = (change: Change, originalEditorState: value) => { - + onChange = (change: Change, originalEditorState?: Value) => { let editorState = change.value; if (this.direction !== '') { @@ -490,6 +498,11 @@ export default class MessageComposerInput extends React.Component { } } + // when selection changes hide the autocomplete + if (!rangeEquals(this.state.editorState.selection, editorState.selection)) { + this.autocomplete.hide(); + } + if (!editorState.document.isEmpty) { this.onTypingActivity(); } else {