import React, { useState } from 'react'; import styles from './Tabs.module.css'; export interface Tab { id: string; label: string; content: React.ReactNode; } export interface TabsProps { tabs: Tab[]; defaultTabId?: string; onTabChange?: (tabId: string) => void; className?: string; } export function Tabs({ tabs, defaultTabId, onTabChange, className = '' }: TabsProps) { const [activeTabId, setActiveTabId] = useState( defaultTabId || tabs[0]?.id || '' ); const handleTabClick = (tabId: string) => { setActiveTabId(tabId); onTabChange?.(tabId); }; const activeTab = tabs.find(tab => tab.id === activeTabId) || tabs[0]; if (!tabs || tabs.length === 0) { return null; } return (
{tabs.map(tab => ( ))}
{activeTab && activeTab.content}
); } export default Tabs;