From 4e9128c84051080d7a3ae1237a053459654e03a2 Mon Sep 17 00:00:00 2001 From: Botvid Johansson Date: Thu, 24 Apr 2025 15:32:18 +0200 Subject: [PATCH] flytta kortkommandon till hotkeys-js --- src/components/hotkeys.svelte | 14 ++++++++------ src/lib/hotkey-actions.js | 16 ++++++++++++++++ src/routes/+page.svelte | 21 ++++++--------------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/components/hotkeys.svelte b/src/components/hotkeys.svelte index 2936d52..04ce19a 100644 --- a/src/components/hotkeys.svelte +++ b/src/components/hotkeys.svelte @@ -6,8 +6,8 @@ import { clickOutside } from 'svelte-outside'; import Input from '$lib/components/ui/input/input.svelte'; var show = true; - const cancelSave = () => true; - const handleSave = () => true; + const cancelSave = () => (appState.open = ''); + const handleSave = () => (appState.open = ''); const close = () => { if (show == true) { appState.open = ''; @@ -20,16 +20,18 @@ Konfigurera kortkommandon - + Work in progress: Än så länge är det här bara en referens över befintliga kommandon. + -
+
{#each hotkeys as hotkey}
- +
- +
{/each}
diff --git a/src/lib/hotkey-actions.js b/src/lib/hotkey-actions.js index 7e79cc4..75657db 100644 --- a/src/lib/hotkey-actions.js +++ b/src/lib/hotkey-actions.js @@ -110,3 +110,19 @@ hotkeys.set("Escape", { appState.open = "" } }) + +hotkeys.set("CTRL+0", { + name: "Visa 'Välj förkortningslistor'", + action: (e) => { + e.preventDefault(); + appState.open = "selectLists"; + } +}) + +hotkeys.set("CTRL+K", { + name: "Visa 'Konfigurera kortkommandon'", + action: (e) => { + e.preventDefault(); + appState.open = "hotkeys"; + } +}); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5299d7d..09cd0de 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -9,7 +9,7 @@ import Menu from '../components/menu.svelte'; import { Button } from '$lib/components/ui/button'; import { appState, shortforms } from '$lib/stores.svelte'; - import { initHotkeys, registerAllHotkeys, registerHotkeys } from '$lib/hotkeys'; + import { initHotkeys, registerAllHotkeys, registerHotkey } from '$lib/hotkeys'; let loaded = false; $effect(() => { appState.open; @@ -35,25 +35,16 @@ import { Toaster } from '$lib/components/ui/sonner'; import { onDestroy, onMount } from 'svelte'; import { preventDefault } from 'svelte/legacy'; + import { hotkeys } from '$lib/hotkey-actions'; let textarea: HTMLTextAreaElement | undefined = $state(); onMount(() => { appState.open = 'hotkeys'; initHotkeys({ scope: 'main', filterInputs: false }); - registerHotkeys( - { - 'ctrl+0': (e) => { - console.log('ctrl+0'); - e.preventDefault(); - appState.open = 'selectLists'; - }, - 'ctrl+k': (e) => { - e.preventDefault(); - appState.open = 'hotkeys'; - } - }, - { scope: 'main', preventDefault: true } - ); + hotkeys.forEach((handler, key) => { + console.log(key, handler.action); + registerHotkey(key, handler.action, { scope: 'main', preventDefault: true }); + }); }); onDestroy(() => { registerAllHotkeys();