From 5abe1076edad750c16fa005627c332fc225d74ec Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Mon, 19 Aug 2024 14:58:15 +0200 Subject: [PATCH] enh: model workspace shiftKey quick actions --- src/lib/components/workspace/Models.svelte | 183 ++++++++++++++++----- 1 file changed, 139 insertions(+), 44 deletions(-) diff --git a/src/lib/components/workspace/Models.svelte b/src/lib/components/workspace/Models.svelte index 0c31994bd..18635b8d9 100644 --- a/src/lib/components/workspace/Models.svelte +++ b/src/lib/components/workspace/Models.svelte @@ -18,9 +18,13 @@ import EllipsisHorizontal from '../icons/EllipsisHorizontal.svelte'; import ModelMenu from './Models/ModelMenu.svelte'; import ModelDeleteConfirmDialog from '../common/ConfirmDialog.svelte'; + import Tooltip from '../common/Tooltip.svelte'; + import GarbageBin from '../icons/GarbageBin.svelte'; const i18n = getContext('i18n'); + let shiftKey = false; + let showModelDeleteConfirm = false; let localModelfiles = []; @@ -194,6 +198,32 @@ } }); } + + const onKeyDown = (event) => { + if (event.key === 'Shift') { + shiftKey = true; + } + }; + + const onKeyUp = (event) => { + if (event.key === 'Shift') { + shiftKey = false; + } + }; + + const onBlur = () => { + shiftKey = false; + }; + + window.addEventListener('keydown', onKeyDown); + window.addEventListener('keyup', onKeyUp); + window.addEventListener('blur', onBlur); + + return () => { + window.removeEventListener('keydown', onKeyDown); + window.removeEventListener('keyup', onKeyUp); + window.removeEventListener('blur', onBlur); + }; }); @@ -314,54 +344,119 @@
- - - - - + + - { - shareModelHandler(model); - }} - cloneHandler={() => { - cloneModelHandler(model); - }} - exportHandler={() => { - exportModelHandler(model); - }} - hideHandler={() => { - hideModelHandler(model); - }} - deleteHandler={() => { - selectedModel = model; - showModelDeleteConfirm = true; - }} - onClose={() => {}} - > - + + {:else} + - - - + + + + + + { + shareModelHandler(model); + }} + cloneHandler={() => { + cloneModelHandler(model); + }} + exportHandler={() => { + exportModelHandler(model); + }} + hideHandler={() => { + hideModelHandler(model); + }} + deleteHandler={() => { + selectedModel = model; + showModelDeleteConfirm = true; + }} + onClose={() => {}} + > + + + {/if}
{/each}