diff --git a/src/lib/components/FilterBar.svelte b/src/lib/components/FilterBar.svelte index 0634b28..247982e 100644 --- a/src/lib/components/FilterBar.svelte +++ b/src/lib/components/FilterBar.svelte @@ -13,6 +13,7 @@ // Transform tags to Svelecte format let tagOptions = $derived(availableTags.map((t) => ({ value: t.name, label: t.name }))); + let availableTagNames = $derived(new Set(availableTags.map((t) => t.name.toLowerCase()))); // Track selected tag names for Svelecte let selectedTagNames = $state(filters.tags); @@ -22,6 +23,14 @@ selectedTagNames = filters.tags; }); + // Remove deleted tags from filter when availableTags changes + $effect(() => { + const validTags = filters.tags.filter((t) => availableTagNames.has(t.toLowerCase())); + if (validTags.length !== filters.tags.length) { + onchange({ ...filters, tags: validTags }); + } + }); + function handleTypeChange(newType: 'task' | 'thought' | 'all') { onchange({ ...filters, type: newType }); }