import classNames from "classnames"; import { ReactNode, useState } from "react"; import Icon from "@/Components/Icons/Icon"; interface CollapsedProps { text?: ReactNode; children: ReactNode; collapsed: boolean; setCollapsed(b: boolean): void; } const Collapsed = ({ text, children, collapsed, setCollapsed }: CollapsedProps) => { return collapsed ? (
setCollapsed(false)}> {text}
) : (
{children}
); }; interface CollapsedIconProps { icon: ReactNode; collapsed: boolean; } export const CollapsedIcon = ({ icon, collapsed }: CollapsedIconProps) => { return collapsed ?
{icon}
:
{icon}
; }; interface CollapsedSectionProps { title: ReactNode; children: ReactNode; className?: string; startClosed?: boolean; } export const CollapsedSection = ({ title, children, className, startClosed }: CollapsedSectionProps) => { const [collapsed, setCollapsed] = useState(startClosed ?? true); const icon = (
); return ( <>
setCollapsed(!collapsed)}> {title}
{!collapsed && children} ); }; export default Collapsed;