2023-01-11 16:33:43 +00:00
|
|
|
import { Dropdown, Item, Button, Flexbox } from 'react-basics';
|
2020-09-19 17:35:05 +00:00
|
|
|
import { listTimeZones } from 'timezone-support';
|
|
|
|
|
import useTimezone from 'hooks/useTimezone';
|
2023-03-22 21:05:55 +00:00
|
|
|
import useMessages from 'hooks/useMessages';
|
2020-09-19 17:35:05 +00:00
|
|
|
import { getTimezone } from 'lib/date';
|
|
|
|
|
|
2023-04-21 15:00:42 +00:00
|
|
|
export function TimezoneSetting() {
|
2023-03-22 21:05:55 +00:00
|
|
|
const { formatMessage, labels } = useMessages();
|
2020-09-19 17:35:05 +00:00
|
|
|
const [timezone, saveTimezone] = useTimezone();
|
2023-01-11 01:18:59 +00:00
|
|
|
const options = listTimeZones();
|
2020-09-19 17:35:05 +00:00
|
|
|
|
2023-01-11 16:33:43 +00:00
|
|
|
const handleReset = () => saveTimezone(getTimezone());
|
2020-09-19 17:35:05 +00:00
|
|
|
|
|
|
|
|
return (
|
2023-04-13 00:43:08 +00:00
|
|
|
<Flexbox gap={10}>
|
2023-01-18 23:05:39 +00:00
|
|
|
<Dropdown
|
|
|
|
|
items={options}
|
|
|
|
|
value={timezone}
|
|
|
|
|
onChange={saveTimezone}
|
2023-04-13 00:43:08 +00:00
|
|
|
style={{ flex: 1 }}
|
|
|
|
|
menuProps={{ style: { height: 300 } }}
|
2023-01-18 23:05:39 +00:00
|
|
|
>
|
2023-01-11 01:18:59 +00:00
|
|
|
{item => <Item key={item}>{item}</Item>}
|
|
|
|
|
</Dropdown>
|
2023-01-25 15:42:46 +00:00
|
|
|
<Button onClick={handleReset}>{formatMessage(labels.reset)}</Button>
|
2023-01-11 16:33:43 +00:00
|
|
|
</Flexbox>
|
2020-09-19 17:35:05 +00:00
|
|
|
);
|
|
|
|
|
}
|
2023-04-21 15:00:42 +00:00
|
|
|
|
|
|
|
|
export default TimezoneSetting;
|