From acbbd2a1f95774a626151cf7b367b57a2fcbcf84 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 8 Nov 2024 12:19:29 +0100 Subject: [PATCH] web/composer: adjust enter and tab behavior for autocomplete --- web/src/ui/composer/MessageComposer.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/web/src/ui/composer/MessageComposer.tsx b/web/src/ui/composer/MessageComposer.tsx index eb23782..e16e7d5 100644 --- a/web/src/ui/composer/MessageComposer.tsx +++ b/web/src/ui/composer/MessageComposer.tsx @@ -206,9 +206,21 @@ const MessageComposer = () => { } else if (fullKey === "Shift+Tab" || fullKey === "ArrowUp") { autocompleteUpdate = { selected: (autocomplete.selected ?? 0) - 1 } } else if (fullKey === "Enter") { - autocompleteUpdate = autocomplete.selected !== undefined ? null : { selected: 0, close: true } + if (autocomplete.selected !== undefined) { + // Don't capture enter if a result is already selected + sendMessage(evt) + } else { + autocompleteUpdate = { selected: 0, close: true } + } } else if (fullKey === "Escape") { autocompleteUpdate = null + if (autocomplete.frozenQuery) { + setState({ + text: state.text.slice(0, autocomplete.startPos) + + autocomplete.frozenQuery + + state.text.slice(autocomplete.endPos), + }) + } } if (autocompleteUpdate !== undefined) { setAutocomplete(autocompleteUpdate && { ...autocomplete, ...autocompleteUpdate })