From bde820569aabe971bafde2e56173f442ad8e5db1 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 26 Jun 2021 14:22:07 +0200 Subject: [PATCH] Fix double delete on empty input --- ts/editor/Tag.svelte | 16 ++++++---------- ts/editor/TagEditor.svelte | 1 + ts/editor/TagInput.svelte | 12 +++++++++--- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ts/editor/Tag.svelte b/ts/editor/Tag.svelte index d9cb189cf..fefcec644 100644 --- a/ts/editor/Tag.svelte +++ b/ts/editor/Tag.svelte @@ -30,15 +30,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html event.stopPropagation(); } - function updateTag(event: Event) { + function deactivate() { active = false; - - if (name.length === 0) { - deleteTag(event); - } else { - dispatch("tagupdate"); - event.stopPropagation(); - } } @@ -47,10 +40,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html bind:name bind:input on:focus - on:blur={() => (active = false)} + on:blur={deactivate} on:blur on:keydown - on:tagupdate={updateTag} + on:tagupdate={deactivate} + on:tagupdate + on:tagdelete={deactivate} + on:tagdelete on:tagadd on:tagjoinprevious on:tagjoinnext diff --git a/ts/editor/TagEditor.svelte b/ts/editor/TagEditor.svelte index 50874cb3a..7d8c3ac92 100644 --- a/ts/editor/TagEditor.svelte +++ b/ts/editor/TagEditor.svelte @@ -68,6 +68,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } function deleteTagAt(index: number): void { + console.log("eyo", index); tags.splice(index, 1); tags = tags; } diff --git a/ts/editor/TagInput.svelte b/ts/editor/TagInput.svelte index 9c9d61b97..f73e606b1 100644 --- a/ts/editor/TagInput.svelte +++ b/ts/editor/TagInput.svelte @@ -28,7 +28,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html function onAccept(): void { name = normalizeTagname(name); - dispatch("tagupdate", { name }); + if (name.length > 0) { + dispatch("tagupdate"); + } else { + console.log("dispatch delete in taginput", name); + dispatch("tagdelete"); + } } async function onBackspace(event: KeyboardEvent): Promise { @@ -72,7 +77,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } else if (event.code === "Delete") { onDelete(event); } else if (event.code === "Enter") { - onAccept(); + /* should probably do something else */ + input.blur(); event.preventDefault(); } } @@ -120,8 +126,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html tabindex="-1" size="1" on:focus - on:blur on:blur={onAccept} + on:blur on:keydown={onKeydown} on:keydown on:paste={onPaste}