MCPcopy Index your code
hub / github.com/Tailframes/react-components / Tabs

Function Tabs

components/tabs/tabs.tsx:14–39  ·  view source on GitHub ↗
({ className, items }: TabsProps)

Source from the content-addressed store, hash-verified

12}
13
14export function Tabs({ className, items }: TabsProps) {
15 const [activeTab, setActiveTab] = useState(items[0].value);
16
17 const handleTabClick = useCallback((value: TabProps['value']) => {
18 setActiveTab(value);
19 }, []);
20
21 return (
22 <div className='w-full'>
23 <div className={clsxMerge('mb-4 border-b border-gray-200', className)}>
24 <ul className='-mb-px flex space-x-6 overflow-auto text-center text-sm font-medium' role='tablist'>
25 {items.map(({ content: _, ...props }, index) => (
26 <Tab key={index} isActive={props.value === activeTab} onClick={handleTabClick} {...props} />
27 ))}
28 </ul>
29 </div>
30 <div>
31 {items.map(({ value, content }, index) => (
32 <div key={index} id={kebabCase(`tab-panel-${index}`)} className={clsxMerge({ hidden: value !== activeTab })}>
33 {content}
34 </div>
35 ))}
36 </div>
37 </div>
38 );
39}
40
41Tabs.displayName = 'Tabs';

Callers

nothing calls this directly

Calls 2

clsxMergeFunction · 0.90
kebabCaseFunction · 0.90

Tested by

no test coverage detected