import { useEffect, useState } from 'react' import { formatTimeZone, getSupportedTimeZones, getSystemTimeZone, } from 'lib/dates.js' import { Checkbox } from 'lib/ui/Checkbox.js' import { handleString } from 'lib/ui/TextField/TextField.js' interface TimeZonePickerProps { value: string onChange: (timeZone: string) => void onManualTimeZoneSelected?: (manualTimeZoneSelected: boolean) => void } export function TimeZonePicker({ onChange, value, onManualTimeZoneSelected, }: TimeZonePickerProps): JSX.Element { const [manualTimeZoneEnabled, setManualTimeZoneEnabled] = useState(false) const isBrowserTimeZoneSelected = value === getSystemTimeZone() const isManualTimeZoneSelected = !isBrowserTimeZoneSelected || manualTimeZoneEnabled useEffect(() => { if (onManualTimeZoneSelected != null) onManualTimeZoneSelected(isManualTimeZoneSelected) }, [isManualTimeZoneSelected, onManualTimeZoneSelected]) const handleChangeManualTimeZone = (enabled: boolean): void => { setManualTimeZoneEnabled(enabled) if (!enabled) { onChange(getSystemTimeZone()) } } return (