import { ReactNode, useState } from 'react'; import { IconType } from 'react-icons/lib'; import TabItem from '~/components/common/tabs/tab_item'; import TabList from '~/components/common/tabs/tab_list'; import TabPanel from '~/components/common/tabs/tab_panel'; import TransitionLayout from '~/components/layouts/_transition_layout'; export interface Tab { title: string; content: ReactNode; icon?: IconType; danger?: boolean; } export default function Tabs({ tabs }: { tabs: Tab[] }) { const [activeTabIndex, setActiveTabIndex] = useState(0); const handleTabClick = (index: number) => { setActiveTabIndex(index); }; return (
{tabs.map(({ title, icon: Icon, danger }, index) => ( handleTabClick(index)} danger={danger ?? false} > {!!Icon && } {title} ))} {tabs[activeTabIndex].content}
); }