0
0
Fork 0

feat: apply mixin

This commit is contained in:
Javier Segarra 2024-08-28 16:11:25 +02:00
parent ae70256b5e
commit d8e3f9dfd9
3 changed files with 33 additions and 1 deletions

View File

@ -0,0 +1,29 @@
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();
const combination = `${ctrlKey ? 'Ctrl+' : ''}${
altKey ? 'Alt+' : ''
}${key.toLowerCase()}`;
console.log(ctrlKey, altKey, key, combination);
if (ctrlKey && altKey && keyBindingMap[key]) {
router.push(keyBindingMap[key]);
}
};
window.addEventListener('keydown', handleKeyDown);
},
};

View File

@ -1,6 +1,8 @@
import { boot } from 'quasar/wrappers'; import { boot } from 'quasar/wrappers';
import qFormMixin from './qformMixin'; import qFormMixin from './qformMixin';
import mainShortcutMixin from './mainShortcutMixin';
export default boot(({ app }) => { export default boot(({ app }) => {
app.mixin(qFormMixin); app.mixin(qFormMixin);
app.mixin(mainShortcutMixin);
}); });

View File

@ -5,8 +5,9 @@ export default {
name: 'Route', name: 'Route',
meta: { meta: {
title: 'routes', title: 'routes',
icon: 'vn:delivery', icon: 'vn:delivesry',
moduleName: 'Route', moduleName: 'Route',
keyBinding: 'r',
}, },
component: RouterView, component: RouterView,
redirect: { name: 'RouteMain' }, redirect: { name: 'RouteMain' },