import { FC, PropsWithChildren, ReactNode, useCallback, useState } from "react"; interface IProps { expandOnHover?: boolean; expanded?: boolean; title?: ReactNode; } export const Accordion: FC> = ( { children, expandOnHover, expanded, title }, ) => { const [open, setOpen] = useState(false); return (
!title && !expandOnHover && setOpen(!open)} > {!!title && (
!expandOnHover && setOpen(!open)} >
{title}
)} {children}
); }; export const AccordionContent: FC = ({ children }) => { const [height, setHeight] = useState(0); const updateRef = useCallback((node: HTMLDivElement | null) => { if (node) { setHeight(node.clientHeight); } else { setHeight(0); } }, []); const Child = () => (
{children}
); return (
{}
); };