diff --git a/src/renderer/src/components/ui/CollapsibleCard.tsx b/src/renderer/src/components/ui/CollapsibleCard.tsx index dd1bfc6..c128a93 100644 --- a/src/renderer/src/components/ui/CollapsibleCard.tsx +++ b/src/renderer/src/components/ui/CollapsibleCard.tsx @@ -1,26 +1,33 @@ import { useState, type ReactNode } from "react"; import { ChevronDown, ChevronRight } from "lucide-react"; import { LABEL_HEADING } from "./styles"; +import { useCollapsed } from "../../store/ui"; export function CollapsibleCard({ title, count, action, defaultOpen = true, + persistKey, children, }: { title: string; count?: number | string; action?: ReactNode; defaultOpen?: boolean; + persistKey?: string; children: ReactNode; }) { - const [open, setOpen] = useState(defaultOpen); + const local = useState(defaultOpen); + const persisted = useCollapsed(persistKey ?? "", defaultOpen); + const [open, toggle] = persistKey + ? persisted + : [local[0], () => local[1]((v) => !v)]; return (