diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue index 7f4b56572..476be8ae7 100644 --- a/src/client/components/autocomplete.vue +++ b/src/client/components/autocomplete.vue @@ -122,6 +122,7 @@ export default defineComponent({ users: [], hashtags: [], emojis: [], + items: [], select: -1, emojilist, emojiDb: [] as EmojiDef[] @@ -129,10 +130,6 @@ export default defineComponent({ }, computed: { - items(): HTMLCollection { - return (this.$refs.suggests as Element).children; - }, - useOsNativeEmojis(): boolean { return this.$store.state.device.useOsNativeEmojis; } @@ -148,6 +145,7 @@ export default defineComponent({ updated() { this.setPosition(); + this.items = (this.$refs.suggests as Element | undefined)?.children || []; }, mounted() { @@ -371,6 +369,7 @@ export default defineComponent({ selectNext() { if (++this.select >= this.items.length) this.select = 0; + if (this.items.length === 0) this.select = -1; this.applySelect(); }, @@ -384,8 +383,10 @@ export default defineComponent({ el.removeAttribute('data-selected'); } - this.items[this.select].setAttribute('data-selected', 'true'); - (this.items[this.select] as any).focus(); + if (this.select !== -1) { + this.items[this.select].setAttribute('data-selected', 'true'); + (this.items[this.select] as any).focus(); + } }, chooseUser() {