import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import { Accordion, AccordionDetails, AccordionSummary, type AccordionSummaryProps, Typography, type TypographyProps } from '@mui/material'; import { equals, type } from 'ramda'; import type { ReactNode } from 'react'; import { useCollapsibleItemStyles } from './useCollapsibleItemStyles'; export interface Props { children: ReactNode; compact?: boolean; dataTestId?: string; defaultExpanded?: boolean; title: string | JSX.Element; titleProps?: TypographyProps; } export const CollapsibleItem = ({ title, children, defaultExpanded, compact = false, dataTestId = '', titleProps, ...rest }: Props & AccordionSummaryProps): JSX.Element => { const { classes, cx } = useCollapsibleItemStyles(); const isStringTitle = equals(type(title), 'String'); return (
{!isStringTitle && title}
} {...rest} > {isStringTitle && ( {title} )}
{children}
); };