diff --git a/src/components/LanguageSelector.vue b/src/components/LanguageSelector.vue index de4a8482..b43373f0 100644 --- a/src/components/LanguageSelector.vue +++ b/src/components/LanguageSelector.vue @@ -37,9 +37,20 @@ if (event.key === "ArrowDown") { this.selected = Math.min(this.selected + 1, this.filteredItems.length - 1) event.preventDefault() + if (this.selected === this.filteredItems.length - 1) { + this.$refs.container.scrollIntoView({block: "end"}) + } else { + this.$refs.item[this.selected].scrollIntoView({block: "nearest"}) + } + } else if (event.key === "ArrowUp") { this.selected = Math.max(this.selected - 1, 0) event.preventDefault() + if (this.selected === 0) { + this.$refs.container.scrollIntoView({block: "start"}) + } else { + this.$refs.item[this.selected].scrollIntoView({block: "nearest"}) + } } else if (event.key === "Enter") { this.selectItem(this.filteredItems[this.selected].token) event.preventDefault() @@ -69,28 +80,38 @@