41 lines
984 B
React
41 lines
984 B
React
import { Box, useTheme } from "@mui/material";
|
|
import { TabList } from "@mui/lab";
|
|
import PropTypes from "prop-types";
|
|
|
|
/**
|
|
* CustomTabList component
|
|
* @param {string} value - The currently selected tab's value.
|
|
* @param {function} onChange - Callback when a different tab is selected.
|
|
* @param {React.ReactNode} children - Tab components to render inside the TabList.
|
|
* @param {object} props - Additional props passed to the TabList component.
|
|
*/
|
|
|
|
const CustomTabList = ({ value, onChange, children, ...props }) => {
|
|
const theme = useTheme();
|
|
|
|
return (
|
|
<Box
|
|
sx={{
|
|
borderBottom: `1px solid ${theme.palette.primary.lowContrast}`,
|
|
"& .MuiTabs-root": { height: "fit-content", minHeight: "0" },
|
|
}}
|
|
>
|
|
<TabList
|
|
value={value}
|
|
onChange={onChange}
|
|
{...props}
|
|
>
|
|
{children}
|
|
</TabList>
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
CustomTabList.propTypes = {
|
|
value: PropTypes.string,
|
|
onChange: PropTypes.func,
|
|
children: PropTypes.node,
|
|
};
|
|
|
|
export default CustomTabList;
|