import * as React from 'react'; import { Panel } from './panel'; export interface AccordionPanel { open?: boolean; title: React.ReactNode; content: React.ReactNode; } export interface AccordionProps { open?: number; items: ReadonlyArray; duration: number; multiple: boolean; } export const Accordion: React.FunctionComponent> = ({ open = -1, items, duration, multiple }: AccordionProps) => { const [activeTab, setActiveTab] = React.useState(open); return Array.isArray(items) && items.length ? (
{items.map(({ open, title, content }, index) => ( { if (multiple) { return; } setActiveTab(activeTab === i ? -1 : i); }} > {content} ))}
) : null; };