diff --git a/frontend/src/lib/components/ArgEnum.svelte b/frontend/src/lib/components/ArgEnum.svelte index eff7b834e8..1de4e467cf 100644 --- a/frontend/src/lib/components/ArgEnum.svelte +++ b/frontend/src/lib/components/ArgEnum.svelte @@ -13,6 +13,7 @@ create: boolean enumLabels?: Record | undefined selectClass?: string + onClear?: () => void } let { @@ -24,7 +25,8 @@ valid, create, enumLabels = undefined, - selectClass = '' + selectClass = '', + onClear = undefined }: Props = $props() const dispatch = createEventDispatcher() @@ -51,6 +53,7 @@ }) let filterText = $state('') + let cleared = $state(false)
@@ -63,13 +66,19 @@ bind:filterText {items} bind:value={ - () => value ?? defaultValue, + () => value ?? (cleared ? undefined : defaultValue), (newValue) => { + cleared = false if (newValue && items.findIndex((i) => i.value === newValue) === -1) customItems.push(newValue) value = newValue } } + onClear={() => { + onClear?.() + cleared = true + value = undefined + }} onFocus={() => dispatch('focus')} onBlur={() => dispatch('blur')} inputClass={selectClass} diff --git a/frontend/src/lib/components/ArgInput.svelte b/frontend/src/lib/components/ArgInput.svelte index d89495b351..1c631b0d9b 100644 --- a/frontend/src/lib/components/ArgInput.svelte +++ b/frontend/src/lib/components/ArgInput.svelte @@ -1285,6 +1285,10 @@ {:else if inputCat == 'enum'}
{ + lastValue = undefined + value = undefined + }} create={extra['disableCreate'] != true} {defaultValue} valid={valid ?? true}