All files / src/components TabPanel.tsx

100% Statements 18/18
100% Branches 1/1
100% Functions 1/1
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 411x 1x   1x                             1x 1x 5x   5x 5x 5x 5x 5x 5x 5x   5x 5x 5x 5x           5x  
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
 
/**
 * TabPanel component that renders content for a specific tab.
 * The content is only visible when the tab is selected.
 *
 * @component
 * @category Components
 * @param props - Component props
 *
 * @example
 * ```tsx
 * <TabPanel value={currentTab} index={0} name="first-panel">
 *   <div>First panel content</div>
 * </TabPanel>
 * ```
 * @source
 */
export default function TabPanel(props: TabPanelProps) {
  const { children, value, index, ...other } = props;
 
  return (
    <div
      role="tabpanel"
      hidden={value !== index}
      id={`full-width-tabpanel-${index}`}
      aria-labelledby={`full-width-tab-${index}`}
      {...other}
    >
      {value === index && (
        <Box sx={{ p: 0 }}>
          <Typography component={'span'} variant={'body2'}>
            {children}
          </Typography>
        </Box>
      )}
    </div>
  );
}