36 lines
875 B
TypeScript
36 lines
875 B
TypeScript
export const useKeyboardShortcuts = () => {
|
|
const { toggle: toggleSidebar } = useSidebar();
|
|
const { toggle: openSettings, open: isSettingsOpen } = useSettings();
|
|
|
|
const handleKeyDown = (event: KeyboardEvent) => {
|
|
// Ctrl+[ to collapse sidebar
|
|
if (event.ctrlKey && event.key === '[') {
|
|
event.preventDefault();
|
|
toggleSidebar();
|
|
return;
|
|
}
|
|
|
|
if (event.ctrlKey && event.key === ',') {
|
|
event.preventDefault();
|
|
if (isSettingsOpen.value) {
|
|
return;
|
|
}
|
|
|
|
openSettings();
|
|
return;
|
|
}
|
|
};
|
|
|
|
onMounted(() => {
|
|
document.addEventListener('keydown', handleKeyDown);
|
|
});
|
|
|
|
onUnmounted(() => {
|
|
document.removeEventListener('keydown', handleKeyDown);
|
|
});
|
|
|
|
return {
|
|
handleKeyDown,
|
|
};
|
|
};
|