From b11d6ed7940faddfe74a22b25bcb132527cbcec8 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Wed, 11 Feb 2026 15:27:50 +0100 Subject: [PATCH] fix(frontend): revert CloseButton refactor that broke tag removal in MultiSelect (#7909) The recent refactor of CloseButton (from on:close component events to onClick prop) broke tag removal in MultiSelect/TagsToListenTo. The refactor changed on:pointerdown (component event) to onPointerdown (native DOM event), which stopped native pointerdown propagation and broke the drag tracking in DraggableTags, causing the dropdown to open on every close button click. Reverts CloseButton and all callers back to using createEventDispatcher and on:close. Co-authored-by: Claude Opus 4.6 --- frontend/src/lib/components/WorkerGroup.svelte | 2 +- .../apps/editor/settingsPanel/CSSMigrationModal.svelte | 2 +- .../apps/editor/settingsPanel/GridNavbar.svelte | 2 +- .../apps/editor/settingsPanel/GridTab.svelte | 2 +- .../apps/editor/settingsPanel/InputsSpecsEditor.svelte | 2 +- .../apps/editor/settingsPanel/TableActions.svelte | 2 +- .../settingsPanel/secondaryMenu/SecondaryMenu.svelte | 2 +- frontend/src/lib/components/common/CloseButton.svelte | 9 ++++++--- .../src/lib/components/common/button/Button.svelte | 2 +- .../lib/components/common/drawer/DrawerContent.svelte | 2 +- frontend/src/lib/components/common/modal/Modal.svelte | 2 +- .../lib/components/common/seconds/SecondsInput.svelte | 10 +++++----- .../src/lib/components/select/DraggableTags.svelte | 2 +- frontend/src/lib/components/select/MultiSelect.svelte | 2 +- frontend/src/lib/components/select/Select.svelte | 2 +- .../workspaceSettings/DataTableSettings.svelte | 2 +- .../workspaceSettings/DucklakeSettings.svelte | 2 +- .../workspaceSettings/StorageSettings.svelte | 2 +- 18 files changed, 27 insertions(+), 24 deletions(-) diff --git a/frontend/src/lib/components/WorkerGroup.svelte b/frontend/src/lib/components/WorkerGroup.svelte index 2637d54208..da3225df00 100644 --- a/frontend/src/lib/components/WorkerGroup.svelte +++ b/frontend/src/lib/components/WorkerGroup.svelte @@ -372,7 +372,7 @@ label: 'Reset to all tags minus native ones', onClick: () => { if (nconfig != undefined) { - nconfig.worker_tags = defaultTags.concat(nativeTags) + nconfig.worker_tags = defaultTags } }, disabled: !canEditConfig, diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/CSSMigrationModal.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/CSSMigrationModal.svelte index 2b4ea2b6bd..f4250d44ae 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/CSSMigrationModal.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/CSSMigrationModal.svelte @@ -157,7 +157,7 @@ >
Migrate to CSS editor
(migrationModalOpen = false)} + on:close={() => (migrationModalOpen = false)} />
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/GridNavbar.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/GridNavbar.svelte index d530d0b204..80e78020b3 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/GridNavbar.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/GridNavbar.svelte @@ -164,7 +164,7 @@ { + on:close={() => { items = items.filter((_, i) => i !== index) }} /> diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/GridTab.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/GridTab.svelte index 28e5316146..b1111244db 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/GridTab.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/GridTab.svelte @@ -205,7 +205,7 @@ bind:value={items[index].value} />
- deleteSubgrid(index)} /> + deleteSubgrid(index)} />
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte index e3ed15992c..19dd309bec 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte @@ -104,7 +104,7 @@ /> {#if deletable}
- dispatch('delete', k)} /> + dispatch('delete', k)} />
{/if} {/if} diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte index 3a121d7e61..17b301d58c 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte @@ -195,7 +195,7 @@
deleteComponent(component.id, item.originalIndex)} + on:close={() => deleteComponent(component.id, item.originalIndex)} />
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte index 1e94952c4a..877c48bf35 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte @@ -29,7 +29,7 @@
- secondaryMenu?.close()} /> + secondaryMenu?.close()} /> {#if $secondaryMenu?.props?.type === 'style'}
Style Panel
diff --git a/frontend/src/lib/components/common/CloseButton.svelte b/frontend/src/lib/components/common/CloseButton.svelte index 1387049ee6..d7d0a58a7b 100644 --- a/frontend/src/lib/components/common/CloseButton.svelte +++ b/frontend/src/lib/components/common/CloseButton.svelte @@ -1,4 +1,5 @@
{title ?? ''} diff --git a/frontend/src/lib/components/common/modal/Modal.svelte b/frontend/src/lib/components/common/modal/Modal.svelte index 806795a286..ee1e062eb2 100644 --- a/frontend/src/lib/components/common/modal/Modal.svelte +++ b/frontend/src/lib/components/common/modal/Modal.svelte @@ -90,7 +90,7 @@ {style} > {#if kind == 'X'} -
(open = false)} />
(open = false)} />
{/if}
diff --git a/frontend/src/lib/components/common/seconds/SecondsInput.svelte b/frontend/src/lib/components/common/seconds/SecondsInput.svelte index d7b50aeb91..9ca42379d4 100644 --- a/frontend/src/lib/components/common/seconds/SecondsInput.svelte +++ b/frontend/src/lib/components/common/seconds/SecondsInput.svelte @@ -142,7 +142,7 @@ onblur={handleBlur} /> {day !== 1 ? 'days' : 'day'}{day && day > 1 ? 'days' : 'day'}
@@ -166,7 +166,7 @@ onblur={handleBlur} /> {hour !== 1 ? 'hrs' : 'hr'}{hour && hour > 1 ? 'hrs' : 'hr'}
@@ -190,7 +190,7 @@ onblur={handleBlur} /> {min !== 1 ? 'mins' : 'min'}{min && min > 1 ? 'mins' : 'min'}
@@ -214,7 +214,7 @@ onblur={handleBlur} /> {sec !== 1 ? 'secs' : 'sec'}{sec && sec > 1 ? 'secs' : 'sec'}
@@ -223,7 +223,7 @@ class="bg-transparent text-secondary hover:text-primary" noBg small - onClick={() => { + on:close={() => { seconds = defaultValue }} /> diff --git a/frontend/src/lib/components/select/DraggableTags.svelte b/frontend/src/lib/components/select/DraggableTags.svelte index fc6a5838b8..adb6f49e52 100644 --- a/frontend/src/lib/components/select/DraggableTags.svelte +++ b/frontend/src/lib/components/select/DraggableTags.svelte @@ -56,7 +56,7 @@ { e.stopPropagation(); onRemove(item) }} + on:close={(e) => (onRemove(item), e.stopPropagation())} /> {/if} diff --git a/frontend/src/lib/components/select/MultiSelect.svelte b/frontend/src/lib/components/select/MultiSelect.svelte index 57d2b6d7c6..6de40aa235 100644 --- a/frontend/src/lib/components/select/MultiSelect.svelte +++ b/frontend/src/lib/components/select/MultiSelect.svelte @@ -158,7 +158,7 @@ noBg class="ml-2 remove-all bg-transparent text-hint" small - onClick={(e) => { e.stopPropagation(); clearValue() }} + on:close={(e) => (clearValue(), e.stopPropagation())} /> {/if} {:else if RightIcon} diff --git a/frontend/src/lib/components/workspaceSettings/DataTableSettings.svelte b/frontend/src/lib/components/workspaceSettings/DataTableSettings.svelte index 42ed0c6eef..50ca7b2436 100644 --- a/frontend/src/lib/components/workspaceSettings/DataTableSettings.svelte +++ b/frontend/src/lib/components/workspaceSettings/DataTableSettings.svelte @@ -280,7 +280,7 @@ {/if} - removeDataTable(dataTableIndex)} /> + removeDataTable(dataTableIndex)} /> {/each} diff --git a/frontend/src/lib/components/workspaceSettings/DucklakeSettings.svelte b/frontend/src/lib/components/workspaceSettings/DucklakeSettings.svelte index 041817ba05..a7e26228e4 100644 --- a/frontend/src/lib/components/workspaceSettings/DucklakeSettings.svelte +++ b/frontend/src/lib/components/workspaceSettings/DucklakeSettings.svelte @@ -378,7 +378,7 @@ - removeDucklake(ducklakeIndex)} /> + removeDucklake(ducklakeIndex)} /> {/each} diff --git a/frontend/src/lib/components/workspaceSettings/StorageSettings.svelte b/frontend/src/lib/components/workspaceSettings/StorageSettings.svelte index 9af70ce88d..0ce937bd9b 100644 --- a/frontend/src/lib/components/workspaceSettings/StorageSettings.svelte +++ b/frontend/src/lib/components/workspaceSettings/StorageSettings.svelte @@ -227,7 +227,7 @@ {#if tableRow[0] !== null} { + on:close={() => { if (s3ResourceSettings.secondaryStorage) { s3ResourceSettings.secondaryStorage.splice(idx - 1, 1) s3ResourceSettings.secondaryStorage = [...s3ResourceSettings.secondaryStorage]