import { useDebounce } from '@centreon/ui'; import { useAtomValue, useSetAtom } from 'jotai'; import { type MouseEvent, useState } from 'react'; import { changeCustomTimePeriodDerivedAtom, customTimePeriodAtom } from '../timePeriodsAtoms'; import CompactCustomTimePeriod from './CompactCustomTimePeriod'; import PopoverCustomTimePeriod from './PopoverCustomTimePeriod'; interface Props { disabled?: boolean; isCondensed?: boolean; } const CustomTimePeriod = ({ disabled = false, isCondensed = false }: Props): JSX.Element => { const [anchorEl, setAnchorEl] = useState(); const customTimePeriod = useAtomValue(customTimePeriodAtom); const changeCustomTimePeriod = useSetAtom(changeCustomTimePeriodDerivedAtom); const debouncedChangeDate = useDebounce({ functionToDebounce: (...args: Array): void => { const { property, date } = args[0] as { property: string; date: Date; }; changeCustomTimePeriod({ date, property }); }, wait: 500 }); const onClickCompactCustomTimePeriod = ( event: MouseEvent ): void => { setAnchorEl(event.currentTarget); }; const closePopover = (): void => { setAnchorEl(undefined); }; return ( <> ); }; export default CustomTimePeriod;