import { Button, ButtonGroup, Tooltip, useTheme } from '@mui/material'; import { useAtomValue, useSetAtom } from 'jotai'; import { always, cond, equals, lte, map, pick, T } from 'ramda'; import { useTranslation } from 'react-i18next'; import { makeStyles } from 'tss-react/mui'; import { type TimePeriod, timePeriods } from './models'; import { changeSelectedTimePeriodDerivedAtom, selectedTimePeriodAtom } from './timePeriodsAtoms'; import useSortTimePeriods from './useSortTimePeriods'; const useStyles = makeStyles()((theme) => ({ button: { fontSize: theme.typography.body2.fontSize, pointerEvents: 'all' }, buttonGroup: { alignSelf: 'center', height: '100%' } })); interface Props { disabled?: boolean; extraTimePeriods?: Array>; width: number; } const SelectedTimePeriod = ({ width, disabled = false, extraTimePeriods = [] }: Props): JSX.Element => { const { classes } = useStyles(); const theme = useTheme(); const { t } = useTranslation(); const selectedTimePeriodData = useAtomValue(selectedTimePeriodAtom); const changeSelectedTimePeriod = useSetAtom( changeSelectedTimePeriodDerivedAtom ); const currentTimePeriods = useSortTimePeriods([ ...timePeriods, ...extraTimePeriods ] as Array); const timePeriodOptions = map( pick(['id', 'name', 'largeName']), currentTimePeriods ); const translatedTimePeriodOptions = timePeriodOptions.map((timePeriod) => ({ ...timePeriod, largeName: t(timePeriod.largeName), name: t(timePeriod.name) })); return ( {map( ({ id, name, largeName }) => ( ), translatedTimePeriodOptions )} ); }; export default SelectedTimePeriod;