import React, { useState } from 'react' export const Tabs = ({ tabs = '', active = 0, children }) => { // Keep active tab in state const [activeTab, setActiveTab] = useState(active) /* * Parse tab list * Comma-seperated tabs passed as a string are how it works in MDX */ const tablist = Array.isArray(tabs) ? tabs : tabs.split(',').map((tab) => tab.trim()) if (!tablist) return null // Pass down activeTab and tabId for conditional rendering const childrenWithTabSetter = children.map((child, tabId) => React.cloneElement(child, { activeTab, tabId }) ) return (
{tablist.map((title, tabId) => ( ))}
{childrenWithTabSetter}
) } export const Tab = ({ children, tabId, activeTab }) => (activeTab === tabId ? children : null)