import React, { ReactNode, useMemo, useState } from 'react' import { v4 as uuid } from 'uuid' import classNames from 'classnames' export interface Tab { id: string title: ReactNode view: ReactNode } export const Tabs: React.FC<{ tabs: Tab[] initialTabId: string onTabSelect?: (tab: Tab) => void titleClassName?: string className?: string }> = (props) => { const { tabs, onTabSelect, className, titleClassName, initialTabId } = props const [selectedTabId, setSelectedTabId] = useState(initialTabId) const selectedTab = useMemo(() => tabs.find((tab) => tab.id === selectedTabId), [selectedTabId]) const id = useMemo(() => uuid(), []) return ( <>