diff --git a/app/components/Compare/PackageSelector.vue b/app/components/Compare/PackageSelector.vue index 3679a9ba10..0c5fcbec0c 100644 --- a/app/components/Compare/PackageSelector.vue +++ b/app/components/Compare/PackageSelector.vue @@ -75,6 +75,8 @@ const resultIndexOffset = computed(() => (showNoDependencyOption.value ? 1 : 0)) const numberFormatter = useNumberFormatter() +const keyboardShortcuts = useKeyboardShortcuts() + function addPackage(name: string) { if (packages.value.length >= maxPackages.value) return if (packages.value.includes(name)) return @@ -98,6 +100,10 @@ function removePackage(name: string) { } function handleKeydown(e: KeyboardEvent) { + if (!keyboardShortcuts.value) { + return + } + const items = navigableItems.value const count = items.length diff --git a/app/pages/search.vue b/app/pages/search.vue index bb9bba7d12..bb6d9d00bc 100644 --- a/app/pages/search.vue +++ b/app/pages/search.vue @@ -463,7 +463,12 @@ function focusSearchInput() { searchInput?.focus() } +const keyboardShortcuts = useKeyboardShortcuts() + function handleResultsKeydown(e: KeyboardEvent) { + if (!keyboardShortcuts.value) { + return + } // If the active element is an input, navigate to exact match or wait for results if (e.key === 'Enter' && document.activeElement?.tagName === 'INPUT') { // Get value directly from input (not from route query, which may be debounced)