table displays and memory
Deploy / deploy (push) Failing after 2m48s

This commit is contained in:
twotalesanimation
2026-06-07 14:39:21 +02:00
parent fcd19d2ca0
commit ecaa963055
2 changed files with 35 additions and 8 deletions
@@ -406,14 +406,30 @@ export function ShotStatusClient({
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const [collapsedEpisodes, setCollapsedEpisodes] = useState<Set<string>>(new Set());
const [expandedEpisodes, setExpandedEpisodes] = useState<Set<string>>(new Set());
const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set());
// Load saved episode expand state when project changes
useEffect(() => {
if (!selectedProjectId) return;
try {
const saved = localStorage.getItem(`shotStatus:${selectedProjectId}:episodeExpand`);
setExpandedEpisodes(saved ? new Set(JSON.parse(saved) as string[]) : new Set());
} catch {
setExpandedEpisodes(new Set());
}
}, [selectedProjectId]);
const [dueDateDialogOpen, setDueDateDialogOpen] = useState(false);
const toggleEpisode = (ep: string) =>
setCollapsedEpisodes((prev) => {
setExpandedEpisodes((prev) => {
const next = new Set(prev);
next.has(ep) ? next.delete(ep) : next.add(ep);
if (selectedProjectId) {
try {
localStorage.setItem(`shotStatus:${selectedProjectId}:episodeExpand`, JSON.stringify([...next]));
} catch {}
}
return next;
});
@@ -571,7 +587,7 @@ export function ShotStatusClient({
{isEpisodic ? (
<div className="divide-y divide-zinc-800">
{episodeGroups.map(([episode, episodeShots]) => {
const collapsed = collapsedEpisodes.has(episode);
const collapsed = !expandedEpisodes.has(episode);
const episodeIds = episodeShots.map((s) => s.id);
const allEpSelected = episodeIds.every((id) => selectedIds.has(id));
const someEpSelected = episodeIds.some((id) => selectedIds.has(id));