forked from Mirrors/gomuks
web/composer: fix using arrow keys to pick autocomplete results
This commit is contained in:
parent
082e5642aa
commit
e2458c7657
2 changed files with 5 additions and 2 deletions
|
@ -42,6 +42,9 @@ const positiveMod = (val: number, div: number) => (val % div + div) % div
|
||||||
export const EmojiAutocompleter = ({ params, state, setState, setAutocomplete }: AutocompleterProps) => {
|
export const EmojiAutocompleter = ({ params, state, setState, setAutocomplete }: AutocompleterProps) => {
|
||||||
const emojis = useFilteredEmojis((params.frozenQuery ?? params.query).slice(1), true)
|
const emojis = useFilteredEmojis((params.frozenQuery ?? params.query).slice(1), true)
|
||||||
const onSelect = useEvent((index: number) => {
|
const onSelect = useEvent((index: number) => {
|
||||||
|
if (emojis.length === 0) {
|
||||||
|
return
|
||||||
|
}
|
||||||
index = positiveMod(index, emojis.length)
|
index = positiveMod(index, emojis.length)
|
||||||
const emoji = emojis[index]
|
const emoji = emojis[index]
|
||||||
setState({
|
setState({
|
||||||
|
|
|
@ -150,10 +150,10 @@ const MessageComposer = ({ room, scrollToBottomRef, setReplyToRef }: MessageComp
|
||||||
sendMessage(evt)
|
sendMessage(evt)
|
||||||
}
|
}
|
||||||
if (autocomplete && !evt.ctrlKey && !evt.altKey) {
|
if (autocomplete && !evt.ctrlKey && !evt.altKey) {
|
||||||
if (!evt.shiftKey && (evt.key === "Tab" || evt.key === "Down")) {
|
if (!evt.shiftKey && (evt.key === "Tab" || evt.key === "ArrowDown")) {
|
||||||
setAutocomplete({ ...autocomplete, selected: (autocomplete.selected ?? -1) + 1 })
|
setAutocomplete({ ...autocomplete, selected: (autocomplete.selected ?? -1) + 1 })
|
||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
} else if ((evt.shiftKey && evt.key === "Tab") || (!evt.shiftKey && evt.key === "Up")) {
|
} else if ((evt.shiftKey && evt.key === "Tab") || (!evt.shiftKey && evt.key === "ArrowUp")) {
|
||||||
setAutocomplete({ ...autocomplete, selected: (autocomplete.selected ?? 0) - 1 })
|
setAutocomplete({ ...autocomplete, selected: (autocomplete.selected ?? 0) - 1 })
|
||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue