const { components: { Icon, } } = window[ 'wp' ]; interface AccordionProps { isOpen: boolean; setIsOpen: (value: boolean) => void; label?: string; children?: React.ReactNode; } /** * Set function to return Accordion component. */ export const Accordion: React.FC = ({ isOpen, setIsOpen, label = 'Toggle Accordion', children }) => { // Set classNames. const classNames = [ 'qp-viewports-accordion' ]; if ( isOpen ) { classNames.push( 'active' ); } /** * Set function to fire on click accordion. */ const onClick = () => { setIsOpen( ! isOpen ); }; // Render component. return (
{ ! isOpen && } { isOpen && } { label } { isOpen &&
{ React.Children.map( children, ( child ) => { return ( child ) } ) }
}
); };