salix-front/src/boot/mainShortcutMixin.js

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);
},
};