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 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,7 @@ export type IssueViewState = {
|
|||||||
sortDir: "asc" | "desc";
|
sortDir: "asc" | "desc";
|
||||||
groupBy: "status" | "priority" | "assignee" | "none";
|
groupBy: "status" | "priority" | "assignee" | "none";
|
||||||
viewMode: "list" | "board";
|
viewMode: "list" | "board";
|
||||||
|
collapsedGroups: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultViewState: IssueViewState = {
|
const defaultViewState: IssueViewState = {
|
||||||
@@ -50,6 +51,7 @@ const defaultViewState: IssueViewState = {
|
|||||||
sortDir: "asc",
|
sortDir: "asc",
|
||||||
groupBy: "status",
|
groupBy: "status",
|
||||||
viewMode: "list",
|
viewMode: "list",
|
||||||
|
collapsedGroups: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const quickFilterPresets = [
|
const quickFilterPresets = [
|
||||||
@@ -497,7 +499,17 @@ export function IssuesList({
|
|||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
groupedContent.map((group) => (
|
groupedContent.map((group) => (
|
||||||
<Collapsible key={group.key} defaultOpen>
|
<Collapsible
|
||||||
|
key={group.key}
|
||||||
|
open={!viewState.collapsedGroups.includes(group.key)}
|
||||||
|
onOpenChange={(open) => {
|
||||||
|
updateView({
|
||||||
|
collapsedGroups: open
|
||||||
|
? viewState.collapsedGroups.filter((k) => k !== group.key)
|
||||||
|
: [...viewState.collapsedGroups, group.key],
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
{group.label && (
|
{group.label && (
|
||||||
<div className="flex items-center py-1.5 pl-1 pr-3">
|
<div className="flex items-center py-1.5 pl-1 pr-3">
|
||||||
<CollapsibleTrigger className="flex items-center gap-1.5">
|
<CollapsibleTrigger className="flex items-center gap-1.5">
|
||||||
|
|||||||
Reference in New Issue
Block a user