import React, { useState, useEffect } from 'react'; import classNames from 'classnames'; import { Tab } from './Tab'; import { TabList } from './TabList'; import { TabPanels } from './TabPanels'; import './Tabs.scss'; export type TabsProps = React.HTMLAttributes & { tabs: Tab[]; onTabClicked?: (tabName: string) => void; defaultActiveTab?: string; activeTab?: string; tabListClassName?: string; }; export const Tabs: React.FC = ({ tabs, onTabClicked, defaultActiveTab, activeTab, className, tabListClassName, ...rest }) => { const [activePanel, setActivePanel] = useState(activeTab || defaultActiveTab || tabs[0].name); const handleTabClick = (tabName: string) => { if (!activeTab) setActivePanel(tabName); if (onTabClicked) onTabClicked(tabName); }; useEffect(() => { if (activeTab) setActivePanel(activeTab); }, [activeTab]); return (
); };