import { getTimezoneOffset, resolveTimezone } from '@/utils/timezone' import { Button } from '@linagora/twake-mui' import { MouseEvent, useState } from 'react' import { useI18n } from 'twake-i18n' import { useTimeZoneList } from './hooks/useTimeZoneList' import { LargeTimezoneSelector } from './LargeTimeZoneSelector' import { useScreenSizeDetection } from '@/useScreenSizeDetection' import { SmallTimezoneSelector } from './SmallTimeZoneSelector' export interface TimezoneSelectProps { value: string onChange: (value: string) => void referenceDate: Date } export const TimezoneSelector: React.FC = ({ value, onChange, referenceDate }) => { const { isTooSmall: isMobile } = useScreenSizeDetection() const [anchorEl, setAnchorEl] = useState(null) const timezoneList = useTimeZoneList() const effectiveTimezone = value ? resolveTimezone(value) : timezoneList.browserTz const safeTimezone = timezoneList.zones.includes(effectiveTimezone) ? effectiveTimezone : timezoneList.browserTz const selectedOffset = getTimezoneOffset(safeTimezone, referenceDate) const handleOpen = (event: MouseEvent): void => { setAnchorEl(event.currentTarget) } const handleClose = (): void => { setAnchorEl(null) } const open = Boolean(anchorEl) const { t } = useI18n() return ( <> {isMobile ? ( ) : ( )} ) }