import { Tab, Tabs } from '@mui/material'
import React, { ReactElement, ReactNode } from 'react'
import { makeStyles } from 'tss-react/mui'
interface TabPanelProps {
children?: ReactNode
index: number
value: number
}
function TabPanel(props: TabPanelProps) {
const { children, value, index, ...other } = props
return (
{value === index && children}
)
}
const useStyles = makeStyles()(theme => ({
root: {
flexGrow: 1,
},
content: {
marginTop: theme.spacing(2),
},
}))
interface TabsValues {
component: ReactNode
label: ReactNode
}
interface Props {
values: TabsValues[]
index?: number
indexChanged?: (index: number) => void
}
export default function SimpleTabs({ values, index, indexChanged }: Props): ReactElement {
const { classes } = useStyles()
const [value, setValue] = React.useState(index || 0)
const handleChange = (_event: React.SyntheticEvent, newValue: number) => {
if (indexChanged) indexChanged(newValue)
else setValue(newValue)
}
const v = index !== undefined ? index : value
return (
{values.map(({ label }, idx) => (
))}
{values.map(({ component }, idx) => (
{component}
))}
)
}