mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-08 03:08:29 +02:00
Scroll menu items into view when using keyboard (#248)
Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
let isFocus = false;
|
let isFocus = false;
|
||||||
let isOpen = false;
|
let isOpen = false;
|
||||||
let input = null;
|
let input = null;
|
||||||
|
let suggestionList = null;
|
||||||
|
|
||||||
let suggestions = [];
|
let suggestions = [];
|
||||||
let selectedIndex = 0;
|
let selectedIndex = 0;
|
||||||
@@ -100,6 +101,16 @@
|
|||||||
if (newIndex >= length) newIndex = 0;
|
if (newIndex >= length) newIndex = 0;
|
||||||
|
|
||||||
selectedIndex = newIndex;
|
selectedIndex = newIndex;
|
||||||
|
|
||||||
|
// Scroll to selected list item
|
||||||
|
setTimeout(() => {
|
||||||
|
if (suggestionList) {
|
||||||
|
const selectedListItem = suggestionList.querySelector('li.selected');
|
||||||
|
if (selectedListItem) {
|
||||||
|
selectedListItem.scrollIntoView({block: 'center'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -114,7 +125,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- autocomplete suggestion list -->
|
<!-- autocomplete suggestion list -->
|
||||||
<ul class="menu" class:open={isOpen && suggestions.length > 0}>
|
<ul class="menu" class:open={isOpen && suggestions.length > 0}
|
||||||
|
bind:this={suggestionList}>
|
||||||
<!-- menu list items -->
|
<!-- menu list items -->
|
||||||
{#each suggestions as tag,i}
|
{#each suggestions as tag,i}
|
||||||
<li class="menu-item" class:selected={selectedIndex === i}>
|
<li class="menu-item" class:selected={selectedIndex === i}>
|
||||||
|
Reference in New Issue
Block a user