From 25a528a63611663efc7024ebd175301c6a55b18e Mon Sep 17 00:00:00 2001 From: Forgotten Date: Thu, 26 Feb 2026 12:28:59 -0600 Subject: [PATCH] feat(ui): persist collapsed group state on issues page Adds `collapsedGroups` to the view state (persisted in localStorage), so folding a status/priority/assignee group header is remembered across page navigations and reloads. Co-Authored-By: Claude Opus 4.6 --- ui/src/components/IssuesList.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ui/src/components/IssuesList.tsx b/ui/src/components/IssuesList.tsx index f71f4fd0..79182857 100644 --- a/ui/src/components/IssuesList.tsx +++ b/ui/src/components/IssuesList.tsx @@ -39,6 +39,7 @@ export type IssueViewState = { sortDir: "asc" | "desc"; groupBy: "status" | "priority" | "assignee" | "none"; viewMode: "list" | "board"; + collapsedGroups: string[]; }; const defaultViewState: IssueViewState = { @@ -50,6 +51,7 @@ const defaultViewState: IssueViewState = { sortDir: "asc", groupBy: "status", viewMode: "list", + collapsedGroups: [], }; const quickFilterPresets = [ @@ -497,7 +499,17 @@ export function IssuesList({ /> ) : ( groupedContent.map((group) => ( - + { + updateView({ + collapsedGroups: open + ? viewState.collapsedGroups.filter((k) => k !== group.key) + : [...viewState.collapsedGroups, group.key], + }); + }} + > {group.label && (