From 4a3155c33aa354973d4e0ca3ffeab2b7fd442040 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Thu, 16 May 2024 18:45:22 +0200 Subject: [PATCH 1/4] fix: close autocomplete on defocus --- src/lib/components/filter/Autocomplete.svelte | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/components/filter/Autocomplete.svelte b/src/lib/components/filter/Autocomplete.svelte index f1a7885..035b387 100644 --- a/src/lib/components/filter/Autocomplete.svelte +++ b/src/lib/components/filter/Autocomplete.svelte @@ -242,6 +242,7 @@ setInputValue(""); } } + close(true); } function highlight(): void { @@ -344,7 +345,12 @@ {#if clearBtn && selection}
- +
{/if} From cdb344609cde80084876faea9f80e7b26b01d0f2 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Thu, 16 May 2024 18:47:16 +0200 Subject: [PATCH 2/4] fix: remove process.on hooks (not necessary) --- src/hooks.server.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/hooks.server.ts b/src/hooks.server.ts index a7fddf5..87c81a0 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -31,7 +31,3 @@ export const handle = sequence( authorization, createTRPCHandle({ router, createContext }), ); - -// Allow server application to exit -process.on("SIGINT", () => process.exit()); // Ctrl+C -process.on("SIGTERM", () => process.exit()); // docker stop From 88a5040f9c4e19ae3efb5ad0894c8dc5b905a92e Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Thu, 16 May 2024 19:42:26 +0200 Subject: [PATCH 3/4] fix: autocomplete not closing on tab --- src/lib/components/filter/Autocomplete.svelte | 51 ++++++++----------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/src/lib/components/filter/Autocomplete.svelte b/src/lib/components/filter/Autocomplete.svelte index 035b387..7a20f6d 100644 --- a/src/lib/components/filter/Autocomplete.svelte +++ b/src/lib/components/filter/Autocomplete.svelte @@ -166,6 +166,14 @@ if (opened) { onClose(kb); } + // select remaining item if autoselect is enabled + if (!selection) { + if (!noAutoselect1 && filteredItems.length === 1) { + selectListItem(filteredItems[0], true); + } else { + setInputValue(""); + } + } opened = false; } @@ -185,43 +193,38 @@ } function onKeyDown(e: KeyboardEvent): void { - let { key } = e; - if (key === "Tab" && e.shiftKey) key = "ShiftTab"; - const fnmap: Record void> = { - Tab: () => close, - ShiftTab: () => close, - ArrowDown: () => { + switch (e.key) { + case "Tab": + close(); + break; + case "ArrowDown": open(); if (highlightIndex < filteredItems.length - 1) { highlightIndex++; highlight(); } - }, - ArrowUp: () => { + break; + case "ArrowUp": open(); if (highlightIndex > 0) { highlightIndex--; highlight(); } - }, - Escape: () => { + break; + case "Escape": e.stopPropagation(); if (opened) { if (inputElm) inputElm.focus(); close(); } - }, - Backspace: () => { + break; + case "Backspace": if (inputValue().length === 0) { onBackspace(); } else if (selection) { clearSelection(); } - }, - }; - const fn = fnmap[key]; - if (typeof fn === "function") { - fn(); + break; } } @@ -234,17 +237,6 @@ } } - function onBlur(): void { - if (!selection) { - if (!noAutoselect1 && filteredItems.length === 1) { - selectListItem(filteredItems[0], true); - } else { - setInputValue(""); - } - } - close(true); - } - function highlight(): void { if (browser && opened) { window.setTimeout(() => { @@ -304,12 +296,11 @@ on:focus={open} on:keydown={onKeyDown} on:keypress={onKeyPress} - on:blur={onBlur} use:floatingRef /> {#if opened && filteredItems.length > 0} -
+
{#each filteredItems as item, i}
Date: Thu, 16 May 2024 20:19:55 +0200 Subject: [PATCH 4/4] feat: select table entries on doubleclick --- src/lib/components/table/EntryTable.svelte | 3 +++ src/lib/components/table/PatientTable.svelte | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/lib/components/table/EntryTable.svelte b/src/lib/components/table/EntryTable.svelte index 42c2990..4af0262 100644 --- a/src/lib/components/table/EntryTable.svelte +++ b/src/lib/components/table/EntryTable.svelte @@ -1,4 +1,6 @@