24 lines
744 B
JavaScript
24 lines
744 B
JavaScript
import routes from 'src/router/modules';
|
|
|
|
import { useRouter } from 'vue-router';
|
|
export default {
|
|
mounted: function () {
|
|
const router = useRouter();
|
|
const keyBindingMap = routes
|
|
.filter((route) => route.meta.keyBinding)
|
|
.reduce((map, route) => {
|
|
map[route.meta.keyBinding.toLowerCase()] = route.path;
|
|
return map;
|
|
}, {});
|
|
const handleKeyDown = (event) => {
|
|
const { ctrlKey, altKey, key } = event;
|
|
event.preventDefault();
|
|
if (ctrlKey && altKey && keyBindingMap[key]) {
|
|
router.push(keyBindingMap[key]);
|
|
}
|
|
};
|
|
|
|
window.addEventListener('keydown', handleKeyDown);
|
|
},
|
|
};
|