import React, {ReactNode, useState} from "react"; import {ChevronDown, ChevronUp, LucideIcon} from 'lucide-react'; import IconContainer from "@/components/ui/IconContainer"; type CollapseVariant = 'default' | 'card'; export interface CollapseProps { title: string; icon?: LucideIcon; variant?: CollapseVariant; content?: ReactNode; children?: ReactNode; defaultOpen?: boolean; } export default function Collapse( { title, icon, variant = 'default', content, children, defaultOpen = false, }: CollapseProps) { const [isOpen, setIsOpen] = useState(defaultOpen); const renderContent: ReactNode = children || content; const isCard: boolean = variant === 'card'; const ChevronIcon = isOpen ? ChevronUp : ChevronDown; return (
{isOpen && (
{renderContent}
)}
); }