src/lib/components/taskShortcuts.svelte.ts (view raw)
1type Actions = Record<string, () => void>;
2
3export const getShortcutActions = (actions: Actions) => {
4 let isCtrlDown = $state(false);
5 let isAltDown = $state(false);
6 let actionKey = $state("");
7
8 const onKeyDown = event => {
9 switch (event.key) {
10 case "Control":
11 isCtrlDown = true;
12 break;
13 case "Alt":
14 isAltDown = true;
15 break;
16 default:
17 if (isCtrlDown && isAltDown) {
18 actionKey = event.key;
19 console.log("ACTION APPLY", actionKey);
20 actions[actionKey]?.();
21 }
22 }
23 };
24
25 const onKeyUp = event => {
26 switch (event.key) {
27 case "Control":
28 isCtrlDown = false;
29 break;
30 case "Alt":
31 isAltDown = false;
32 break;
33 }
34 };
35
36 return { onKeyDown, onKeyUp };
37};