From ce3ed10b6056066364f8779300a00617cfa026e8 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 1 Apr 2026 17:24:33 +0200 Subject: [PATCH] feat(todo/web): replace dead filter system with working tag filtering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove unused TaskFilters component (priorities, sort, search, completed toggle — none were wired to the board view). Rename PillNav pill from "Filter" to "Tags" and show TagStrip instead. Connect TagStrip tag selection to BoardViewRenderer via shared context so selecting tags actually filters displayed tasks. Clean up viewStore by removing dead filter state (filterPriorities, filterLabelIds, filterSearchQuery). Co-Authored-By: Claude Opus 4.6 (1M context) --- .../web/src/lib/components/TagStrip.svelte | 29 +- .../web/src/lib/components/TaskFilters.svelte | 630 ------------------ .../board-views/BoardViewRenderer.svelte | 17 +- .../apps/web/src/lib/stores/view.svelte.ts | 51 -- .../todo/apps/web/src/lib/stores/view.test.ts | 102 +-- .../web/src/lib/utils/task-filters.test.ts | 188 ------ .../apps/web/src/lib/utils/task-filters.ts | 32 - .../apps/web/src/routes/(app)/+layout.svelte | 48 +- 8 files changed, 71 insertions(+), 1026 deletions(-) delete mode 100644 apps/todo/apps/web/src/lib/components/TaskFilters.svelte delete mode 100644 apps/todo/apps/web/src/lib/utils/task-filters.test.ts delete mode 100644 apps/todo/apps/web/src/lib/utils/task-filters.ts diff --git a/apps/todo/apps/web/src/lib/components/TagStrip.svelte b/apps/todo/apps/web/src/lib/components/TagStrip.svelte index 7485a02e2..0829dff00 100644 --- a/apps/todo/apps/web/src/lib/components/TagStrip.svelte +++ b/apps/todo/apps/web/src/lib/components/TagStrip.svelte @@ -1,37 +1,31 @@ -
+
- - - {#if showTags} - - {#if tagsCtx.value.length > 0} - {#each tagsCtx.value as tag (tag.id)} - - {/each} - {/if} - - {/if} - - - - Filter: - - - - {#each priorities as priority (priority.value)} - - {/each} - - - {#if showSort && onSortChange} - - {#each sortOptions as option (option.id)} - - {/each} - {/if} - - - {#if showCompleted && onToggleCompleted} - - {/if} -
-
-{:else} - -
-
- - {#if showSearch} -
-
- - onSearchChange(e.currentTarget.value)} - placeholder={$t('filters.searchTasks')} - class="w-full pl-10 pr-8 py-2 text-sm bg-background border border-border rounded-lg outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary placeholder:text-muted-foreground transition-all" - /> - {#if searchQuery} - - {/if} -
- - {#if hasActiveFilters} - - {/if} -
- {/if} - - -
- -
- {$t('task.priority')} -
- {#each priorities as priority} - - {/each} -
-
- - - {#if showLabels} - - -
- Tags - - - {#if showLabelsDropdown} - -
(showLabelsDropdown = false)}>
-
- {#if tagsCtx.value.length === 0} -

- {$t('filters.noTagsAvailable')} -

- {:else} -
- {#each tagsCtx.value as label} - - {/each} -
- {/if} -
- {/if} -
- {/if} -
-
-
-{/if} - - diff --git a/apps/todo/apps/web/src/lib/components/board-views/BoardViewRenderer.svelte b/apps/todo/apps/web/src/lib/components/board-views/BoardViewRenderer.svelte index 820f4b9a0..5132687d4 100644 --- a/apps/todo/apps/web/src/lib/components/board-views/BoardViewRenderer.svelte +++ b/apps/todo/apps/web/src/lib/components/board-views/BoardViewRenderer.svelte @@ -1,5 +1,5 @@