Refactor InfoCollapse component to use collapseKey prop for active state management and improve structure

This commit is contained in:
Tom Butcher 2025-07-14 23:07:15 +01:00
parent 3bd2628960
commit a5458c6b67

View File

@ -12,33 +12,33 @@ const InfoCollapse = ({
active, active,
onToggle, onToggle,
className = '', className = '',
key = 'default' collapseKey = 'default'
}) => { }) => {
return ( return (
<Collapse <Collapse
ghost ghost
expandIconPosition='end' expandIconPosition='end'
activeKey={active ? [key] : []} activeKey={active ? [collapseKey] : []}
onChange={(keys) => onToggle(keys.length > 0)} onChange={(keys) => onToggle(keys.length > 0)}
expandIcon={({ isActive }) => ( expandIcon={({ isActive }) => (
<CaretLeftOutlined rotate={isActive ? -90 : 0} /> <CaretLeftOutlined rotate={isActive ? -90 : 0} />
)} )}
className={`no-h-padding-collapse ${className}`} className={`no-h-padding-collapse ${className}`}
> items={[
<Collapse.Panel {
header={ key: collapseKey,
<Flex align='center' gap={'middle'}> children: children,
{icon} label: (
<Title level={5} style={{ margin: 0 }}> <Flex align='center' gap={'middle'}>
{title} {icon}
</Title> <Title level={5} style={{ margin: 0 }}>
</Flex> {title}
</Title>
</Flex>
)
} }
key={key} ]}
> />
{children}
</Collapse.Panel>
</Collapse>
) )
} }
@ -49,7 +49,7 @@ InfoCollapse.propTypes = {
active: PropTypes.bool.isRequired, active: PropTypes.bool.isRequired,
onToggle: PropTypes.func.isRequired, onToggle: PropTypes.func.isRequired,
className: PropTypes.string, className: PropTypes.string,
key: PropTypes.string collapseKey: PropTypes.string
} }
export default InfoCollapse export default InfoCollapse