Files
clientsflow/research/chatwoot/app/javascript/dashboard/components-next/sidebar/useSidebarKeyboardShortcuts.js

40 lines
1.0 KiB
JavaScript

import { useKeyboardEvents } from 'dashboard/composables/useKeyboardEvents';
import { useRoute, useRouter } from 'vue-router';
export function useSidebarKeyboardShortcuts(toggleShortcutModalFn) {
const route = useRoute();
const router = useRouter();
const isCurrentRouteSameAsNavigation = routeName => {
return route.name === routeName;
};
const navigateToRoute = routeName => {
if (!isCurrentRouteSameAsNavigation(routeName)) {
router.push({ name: routeName });
}
};
const keyboardEvents = {
'$mod+Slash': {
action: () => toggleShortcutModalFn(true),
},
'$mod+Escape': {
action: () => toggleShortcutModalFn(false),
},
'Alt+KeyC': {
action: () => navigateToRoute('home'),
},
'Alt+KeyV': {
action: () => navigateToRoute('contacts_dashboard'),
},
'Alt+KeyR': {
action: () => navigateToRoute('account_overview_reports'),
},
'Alt+KeyS': {
action: () => navigateToRoute('agent_list'),
},
};
return useKeyboardEvents(keyboardEvents);
}