diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index c95895710..5986de983 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -67,6 +67,7 @@ "jsonpath-plus": "^7.0.0", "lodash-es": "^4.17.21", "lossless-json": "^2.0.8", + "minisearch": "^6.1.0", "nprogress": "^0.2.0", "paho-mqtt": "^1.1.0", "path": "^0.12.7", diff --git a/packages/hoppscotch-common/src/components/app/spotlight/index.vue b/packages/hoppscotch-common/src/components/app/spotlight/index.vue index e40b1f759..1a9778619 100644 --- a/packages/hoppscotch-common/src/components/app/spotlight/index.vue +++ b/packages/hoppscotch-common/src/components/app/spotlight/index.vue @@ -145,6 +145,9 @@ function newUseArrowKeysForNavigation() { }) const onArrowDown = () => { + // If no entries, do nothing + if (scoredResults.value.length === 0) return + const [sectionIndex, entryIndex] = selectedEntry.value const [, section] = scoredResults.value[sectionIndex] @@ -159,6 +162,9 @@ function newUseArrowKeysForNavigation() { } const onArrowUp = () => { + // If no entries, do nothing + if (scoredResults.value.length === 0) return + const [sectionIndex, entryIndex] = selectedEntry.value if (entryIndex > 0) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 149789480..68d239dde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -509,6 +509,9 @@ importers: lossless-json: specifier: ^2.0.8 version: 2.0.8 + minisearch: + specifier: ^6.1.0 + version: 6.1.0 nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -5833,8 +5836,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 9.3.0-beta.21 - '@intlify/shared': 9.3.0-beta.21 + '@intlify/message-compiler': 9.3.0-beta.24 + '@intlify/shared': 9.3.0-beta.24 jsonc-eslint-parser: 1.4.1 source-map: 0.6.1 vue-i18n: 9.2.2(vue@3.2.37) @@ -5895,11 +5898,11 @@ packages: source-map-js: 1.0.2 dev: true - /@intlify/message-compiler@9.3.0-beta.21: - resolution: {integrity: sha512-0h3D9AYKW037bfg4OArPKPYPShoWyjWco0DZBD7ASwXsQ8YlplW2HJSRW5V5hgsHpD25ghSRIpFhPPTL0A+QEw==} + /@intlify/message-compiler@9.3.0-beta.24: + resolution: {integrity: sha512-prhHATkgp0mpPqoVgiAtLmUc1JMvs8fMH6w53AVEBn+VF87dLhzanfmWY5FoZWORG51ag54gBDBOoM/VFv3m3A==} engines: {node: '>= 16'} dependencies: - '@intlify/shared': 9.3.0-beta.21 + '@intlify/shared': 9.3.0-beta.24 source-map-js: 1.0.2 dev: true @@ -5912,8 +5915,8 @@ packages: engines: {node: '>= 16'} dev: true - /@intlify/shared@9.3.0-beta.21: - resolution: {integrity: sha512-VcE3XKBlQXHKRKAGP7YB/7n0TFH4EibJSGJ+t4rZuC8gTL6r/eqYM1fsw3JJFe70wamqx1oEmd2Hu/pnPlsfiQ==} + /@intlify/shared@9.3.0-beta.24: + resolution: {integrity: sha512-AKxJ8s7eKIQWkNaf4wyyoLRwf4puCuQgjSChlDJm5JBEt6T8HGgnYTJLRXu6LD/JACn3Qwu6hM/XRX1c9yvjmQ==} engines: {node: '>= 16'} dev: true @@ -5933,7 +5936,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 7.0.0 - '@intlify/shared': 9.3.0-beta.21 + '@intlify/shared': 9.3.0-beta.24 '@rollup/pluginutils': 4.2.1 debug: 4.3.4(supports-color@9.2.2) fast-glob: 3.2.11 @@ -5960,7 +5963,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 3.4.0(vue-i18n@9.2.2) - '@intlify/shared': 9.3.0-beta.21 + '@intlify/shared': 9.3.0-beta.24 '@rollup/pluginutils': 4.2.1 debug: 4.3.4(supports-color@9.2.2) fast-glob: 3.2.12 @@ -5988,7 +5991,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 3.4.0(vue-i18n@9.2.2) - '@intlify/shared': 9.3.0-beta.21 + '@intlify/shared': 9.3.0-beta.24 '@rollup/pluginutils': 4.2.1 debug: 4.3.4(supports-color@9.2.2) fast-glob: 3.2.12 @@ -17042,6 +17045,10 @@ packages: dependencies: yallist: 4.0.0 + /minisearch@6.1.0: + resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} + dev: false + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'}