fix: reset filter button works now

This commit is contained in:
2026-04-25 20:56:59 +02:00
parent cec170c9c0
commit ddc51da83b
2 changed files with 16 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ const state = {
status: clone(bootstrap.status), status: clone(bootstrap.status),
projects: normalizeProjects(bootstrap.projects), projects: normalizeProjects(bootstrap.projects),
sidebarContent: clone(bootstrap.content.sidebar), sidebarContent: clone(bootstrap.content.sidebar),
sidebarFilterSeeds: clone(bootstrap.content.sidebar),
sidebarFilters: hydrateSidebarFilters(bootstrap.content.sidebar), sidebarFilters: hydrateSidebarFilters(bootstrap.content.sidebar),
projectMenuOpen: false, projectMenuOpen: false,
taskStatus: normalizeTaskStatus(bootstrap.task_status), taskStatus: normalizeTaskStatus(bootstrap.task_status),
@@ -569,9 +570,13 @@ function defaultSidebarFilterState(viewId, data) {
}; };
} }
function sidebarFilterSeed(viewId) {
return state.sidebarFilterSeeds[viewId] || state.sidebarContent[viewId] || null;
}
function currentSidebarFilterState(viewId) { function currentSidebarFilterState(viewId) {
if (!state.sidebarFilters[viewId]) { if (!state.sidebarFilters[viewId]) {
state.sidebarFilters[viewId] = defaultSidebarFilterState(viewId, state.sidebarContent[viewId]); state.sidebarFilters[viewId] = defaultSidebarFilterState(viewId, sidebarFilterSeed(viewId));
} }
return state.sidebarFilters[viewId]; return state.sidebarFilters[viewId];
@@ -1219,7 +1224,7 @@ function bindEvents() {
const viewId = button.dataset.sidebarClearFilters; const viewId = button.dataset.sidebarClearFilters;
const existing = currentSidebarFilterState(viewId); const existing = currentSidebarFilterState(viewId);
state.sidebarFilters[viewId] = { state.sidebarFilters[viewId] = {
...defaultSidebarFilterState(viewId, state.sidebarContent[viewId]), ...defaultSidebarFilterState(viewId, sidebarFilterSeed(viewId)),
showFilters: existing.showFilters, showFilters: existing.showFilters,
archiveCollapsed: existing.archiveCollapsed, archiveCollapsed: existing.archiveCollapsed,
tagsCollapsed: existing.tagsCollapsed, tagsCollapsed: existing.tagsCollapsed,

View File

@@ -207,6 +207,15 @@ defmodule BDS.UI.ShellTest do
assert css =~ ".filter-status" assert css =~ ".filter-status"
end end
test "clearing sidebar filters resets from the baseline seed instead of the filtered payload" do
js = File.read!("/Users/gb/Projects/bDS2/priv/ui/app.js")
assert js =~ "sidebarFilterSeeds"
assert js =~ "function sidebarFilterSeed(viewId)"
assert js =~ "defaultSidebarFilterState(viewId, sidebarFilterSeed(viewId))"
refute js =~ "defaultSidebarFilterState(viewId, state.sidebarContent[viewId])"
end
test "static shell bundle exists for direct browser inspection" do test "static shell bundle exists for direct browser inspection" do
assert File.exists?("/Users/gb/Projects/bDS2/priv/ui/index.html") assert File.exists?("/Users/gb/Projects/bDS2/priv/ui/index.html")
assert File.exists?("/Users/gb/Projects/bDS2/priv/ui/app.css") assert File.exists?("/Users/gb/Projects/bDS2/priv/ui/app.css")