Skip to content

Commit 32bd1de

Browse files
committed
feat: add tabs
- TODO: :::tabs, :::tab
1 parent 6d06d3d commit 32bd1de

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

components/Tabs.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { ReactNode, useState } from 'react';
2+
3+
export function Tabs({ children }: { children: ReactNode }) {
4+
const tabList = Array.isArray(children) ? children : [children];
5+
const [activeTab, setActiveTab] = useState(0);
6+
7+
return (
8+
<div className="mb-8">
9+
<div className="flex border-b mb-4">
10+
{tabList.map((child: any, idx) => (
11+
<button
12+
key={idx}
13+
className={`px-4 py-2 text-sm ${
14+
idx === activeTab ? 'border-b-2 border-blue-500 font-semibold' : 'text-gray-500'
15+
}`}
16+
onClick={() => setActiveTab(idx)}
17+
>
18+
{child.props.label}
19+
</button>
20+
))}
21+
</div>
22+
<div className="mt-4">{tabList[activeTab]}</div>
23+
</div>
24+
);
25+
}
26+
27+
export function Tab({ children }: { children: ReactNode }) {
28+
return <div>{children}</div>;
29+
}

0 commit comments

Comments
 (0)