1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-06-29 00:57:50 +02:00
market/src/components/@shared/atoms/Tabs.tsx

45 lines
1.0 KiB
TypeScript

import React, { ReactElement, ReactNode } from 'react'
import { Tab, Tabs as ReactTabs, TabList, TabPanel } from 'react-tabs'
import styles from './Tabs.module.css'
interface TabsItem {
title: string
content: ReactNode
}
export default function Tabs({
items,
className,
handleTabChange,
defaultIndex
}: {
items: TabsItem[]
className?: string
handleTabChange?: (tabName: string) => void
defaultIndex?: number
}): ReactElement {
return (
<ReactTabs
className={`${className && className}`}
defaultIndex={defaultIndex}
>
<TabList className={styles.tabList}>
{items.map((item) => (
<Tab
className={styles.tab}
key={item.title}
onClick={handleTabChange ? () => handleTabChange(item.title) : null}
>
{item.title}
</Tab>
))}
</TabList>
<div className={styles.tabContent}>
{items.map((item) => (
<TabPanel key={item.title}>{item.content}</TabPanel>
))}
</div>
</ReactTabs>
)
}