diff --git a/src/lib/components/workspace/Prompts.svelte b/src/lib/components/workspace/Prompts.svelte index 9a0c4733a6..ea8b942c72 100644 --- a/src/lib/components/workspace/Prompts.svelte +++ b/src/lib/components/workspace/Prompts.svelte @@ -24,6 +24,9 @@ import Tooltip from '../common/Tooltip.svelte'; import { capitalizeFirstLetter, slugify } from '$lib/utils'; import XMark from '../icons/XMark.svelte'; + import GarbageBin from '../icons/GarbageBin.svelte'; + + let shiftKey = false; const i18n = getContext('i18n'); let promptsImportInputElement: HTMLInputElement; @@ -89,7 +92,16 @@ const deleteHandler = async (prompt) => { const command = prompt.command; - await deletePromptByCommand(localStorage.token, command); + + const res = await deletePromptByCommand(localStorage.token, command).catch((err) => { + toast.error(err); + return null; + }); + + if (res) { + toast.success($i18n.t(`Deleted {{name}}`, { name: command })); + } + await init(); }; @@ -101,6 +113,32 @@ onMount(async () => { await init(); loaded = true; + + 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); + }; }); @@ -202,50 +240,64 @@
- - - - - - - { - shareHandler(prompt); - }} - cloneHandler={() => { - cloneHandler(prompt); - }} - exportHandler={() => { - exportHandler(prompt); - }} - deleteHandler={async () => { - deletePrompt = prompt; - showDeleteConfirm = true; - }} - onClose={() => {}} - > - + + {:else} + - - - + + + + + + { + shareHandler(prompt); + }} + cloneHandler={() => { + cloneHandler(prompt); + }} + exportHandler={() => { + exportHandler(prompt); + }} + deleteHandler={async () => { + deletePrompt = prompt; + showDeleteConfirm = true; + }} + onClose={() => {}} + > + + + {/if}
{/each}