"use client"; import { useEffect, useRef, useState, type ReactNode } from "react"; import { ChevronDown } from "lucide-react"; import { Badge } from "@/components/ui/Badge"; import { cn, type BadgeVariant } from "@/lib/ui/variants"; interface ReviewSectionPanelProps { title: string; subtitle?: string; statusLabel: string; statusVariant: BadgeVariant; children: ReactNode; defaultOpen?: boolean; } export function ReviewSectionPanel({ title, subtitle, statusLabel, statusVariant, children, defaultOpen = false, }: ReviewSectionPanelProps) { const [open, setOpen] = useState(defaultOpen); const previousDefaultOpen = useRef(defaultOpen); useEffect(() => { if (defaultOpen && !previousDefaultOpen.current) { setOpen(true); } previousDefaultOpen.current = defaultOpen; }, [defaultOpen]); return (
setOpen(event.currentTarget.open)} > {title} {subtitle ? ( {subtitle} ) : null} {statusLabel}
{children}
); }