fix(search): make keyboard shortcut works again

This commit is contained in:
Bastien Wirtz 2024-07-15 13:55:32 +02:00
parent fe25fb03a8
commit 6c438298f2
4 changed files with 78 additions and 67 deletions

View File

@ -13,7 +13,7 @@
"@fortawesome/fontawesome-free": "^6.5.2",
"bulma": "^1.0.1",
"lodash.merge": "^4.6.2",
"vue": "^3.4.26",
"vue": "^3.4.31",
"yaml": "^2.4.5"
},
"devDependencies": {
@ -29,5 +29,5 @@
"vite-plugin-pwa": "^0.20.0"
},
"license": "Apache-2.0",
"packageManager": "pnpm@9.4.0+sha512.f549b8a52c9d2b8536762f99c0722205efc5af913e77835dbccc3b0b0b2ca9e7dc8022b78062c17291c48e88749c70ce88eb5a74f1fa8c4bf5e18bb46c8bd83a"
"packageManager": "pnpm@9.5.0+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903"
}

View File

@ -18,8 +18,8 @@ importers:
specifier: ^4.6.2
version: 4.6.2
vue:
specifier: ^3.4.26
version: 3.4.26
specifier: ^3.4.31
version: 3.4.31
yaml:
specifier: ^2.4.5
version: 2.4.5
@ -29,7 +29,7 @@ importers:
version: 1.10.2
'@vitejs/plugin-vue':
specifier: ^5.0.4
version: 5.0.4(vite@5.2.10(sass@1.76.0)(terser@5.31.0))(vue@3.4.26)
version: 5.0.4(vite@5.2.10(sass@1.76.0)(terser@5.31.0))(vue@3.4.31)
'@vue/eslint-config-prettier':
specifier: ^9.0.0
version: 9.0.0(eslint@8.57.0)(prettier@3.2.5)
@ -199,6 +199,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/parser@7.24.8':
resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5':
resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==}
engines: {node: '>=6.9.0'}
@ -1008,17 +1013,17 @@ packages:
vite: ^5.0.0
vue: ^3.2.25
'@vue/compiler-core@3.4.26':
resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==}
'@vue/compiler-core@3.4.31':
resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
'@vue/compiler-dom@3.4.26':
resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==}
'@vue/compiler-dom@3.4.31':
resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
'@vue/compiler-sfc@3.4.26':
resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==}
'@vue/compiler-sfc@3.4.31':
resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
'@vue/compiler-ssr@3.4.26':
resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==}
'@vue/compiler-ssr@3.4.31':
resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
'@vue/eslint-config-prettier@9.0.0':
resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==}
@ -1026,22 +1031,22 @@ packages:
eslint: '>= 8.0.0'
prettier: '>= 3.0.0'
'@vue/reactivity@3.4.26':
resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==}
'@vue/reactivity@3.4.31':
resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
'@vue/runtime-core@3.4.26':
resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==}
'@vue/runtime-core@3.4.31':
resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==}
'@vue/runtime-dom@3.4.26':
resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==}
'@vue/runtime-dom@3.4.31':
resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==}
'@vue/server-renderer@3.4.26':
resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==}
'@vue/server-renderer@3.4.31':
resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==}
peerDependencies:
vue: 3.4.26
vue: 3.4.31
'@vue/shared@3.4.26':
resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==}
'@vue/shared@3.4.31':
resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@ -2289,8 +2294,8 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
vue@3.4.26:
resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==}
vue@3.4.31:
resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@ -2580,6 +2585,10 @@ snapshots:
dependencies:
'@babel/types': 7.24.5
'@babel/parser@7.24.8':
dependencies:
'@babel/types': 7.24.5
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5)':
dependencies:
'@babel/core': 7.24.5
@ -3373,40 +3382,40 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-vue@5.0.4(vite@5.2.10(sass@1.76.0)(terser@5.31.0))(vue@3.4.26)':
'@vitejs/plugin-vue@5.0.4(vite@5.2.10(sass@1.76.0)(terser@5.31.0))(vue@3.4.31)':
dependencies:
vite: 5.2.10(sass@1.76.0)(terser@5.31.0)
vue: 3.4.26
vue: 3.4.31
'@vue/compiler-core@3.4.26':
'@vue/compiler-core@3.4.31':
dependencies:
'@babel/parser': 7.24.5
'@vue/shared': 3.4.26
'@babel/parser': 7.24.8
'@vue/shared': 3.4.31
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.0
'@vue/compiler-dom@3.4.26':
'@vue/compiler-dom@3.4.31':
dependencies:
'@vue/compiler-core': 3.4.26
'@vue/shared': 3.4.26
'@vue/compiler-core': 3.4.31
'@vue/shared': 3.4.31
'@vue/compiler-sfc@3.4.26':
'@vue/compiler-sfc@3.4.31':
dependencies:
'@babel/parser': 7.24.5
'@vue/compiler-core': 3.4.26
'@vue/compiler-dom': 3.4.26
'@vue/compiler-ssr': 3.4.26
'@vue/shared': 3.4.26
'@babel/parser': 7.24.8
'@vue/compiler-core': 3.4.31
'@vue/compiler-dom': 3.4.31
'@vue/compiler-ssr': 3.4.31
'@vue/shared': 3.4.31
estree-walker: 2.0.2
magic-string: 0.30.10
postcss: 8.4.38
source-map-js: 1.2.0
'@vue/compiler-ssr@3.4.26':
'@vue/compiler-ssr@3.4.31':
dependencies:
'@vue/compiler-dom': 3.4.26
'@vue/shared': 3.4.26
'@vue/compiler-dom': 3.4.31
'@vue/shared': 3.4.31
'@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.2.5)':
dependencies:
@ -3417,28 +3426,29 @@ snapshots:
transitivePeerDependencies:
- '@types/eslint'
'@vue/reactivity@3.4.26':
'@vue/reactivity@3.4.31':
dependencies:
'@vue/shared': 3.4.26
'@vue/shared': 3.4.31
'@vue/runtime-core@3.4.26':
'@vue/runtime-core@3.4.31':
dependencies:
'@vue/reactivity': 3.4.26
'@vue/shared': 3.4.26
'@vue/reactivity': 3.4.31
'@vue/shared': 3.4.31
'@vue/runtime-dom@3.4.26':
'@vue/runtime-dom@3.4.31':
dependencies:
'@vue/runtime-core': 3.4.26
'@vue/shared': 3.4.26
'@vue/reactivity': 3.4.31
'@vue/runtime-core': 3.4.31
'@vue/shared': 3.4.31
csstype: 3.1.3
'@vue/server-renderer@3.4.26(vue@3.4.26)':
'@vue/server-renderer@3.4.31(vue@3.4.31)':
dependencies:
'@vue/compiler-ssr': 3.4.26
'@vue/shared': 3.4.26
vue: 3.4.26
'@vue/compiler-ssr': 3.4.31
'@vue/shared': 3.4.31
vue: 3.4.31
'@vue/shared@3.4.26': {}
'@vue/shared@3.4.31': {}
acorn-jsx@5.3.2(acorn@8.11.3):
dependencies:
@ -4786,13 +4796,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
vue@3.4.26:
vue@3.4.31:
dependencies:
'@vue/compiler-dom': 3.4.26
'@vue/compiler-sfc': 3.4.26
'@vue/runtime-dom': 3.4.26
'@vue/server-renderer': 3.4.26(vue@3.4.26)
'@vue/shared': 3.4.26
'@vue/compiler-dom': 3.4.31
'@vue/compiler-sfc': 3.4.31
'@vue/runtime-dom': 3.4.31
'@vue/server-renderer': 3.4.31(vue@3.4.31)
'@vue/shared': 3.4.31
webidl-conversions@4.0.2: {}

View File

@ -49,7 +49,7 @@
:hotkey="searchHotkey()"
@input="filterServices($event)"
@search-focus="showMenu = true"
@search-open="navigateToFirstService($event?.target?.value)"
@search-open="navigateToFirstService"
@search-cancel="filterServices()"
/>
</Navbar>
@ -276,11 +276,10 @@ export default {
const service = this.services[0].items[0];
window.open(service.url, target || service.target || "_self");
} catch (error) {
console.warning("fail to open service");
console.warn("fail to open service");
}
},
filterServices: function (filter) {
console.log(filter);
this.filter = filter;
if (!filter) {

View File

@ -3,12 +3,14 @@
<form role="search">
<label for="search" class="search-label"></label>
<input
id="search"
name="search"
type="search"
ref="search"
:value="value"
@input.stop="search($event.target.value)"
@keyup.enter.exact="open()"
@keyup.alt.enter="open('_blank')"
@keydown.enter.exact.prevent="open()"
@keydown.alt.enter.prevent="open('_blank')"
/>
</form>
</search>