@seamapi/react 1.61.0 → 1.61.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/elements.js +3679 -3727
- package/dist/elements.js.map +1 -1
- package/dist/index.css +134 -25
- package/dist/index.css.map +1 -1
- package/dist/index.min.css +1 -1
- package/dist/index.min.css.map +1 -1
- package/lib/dates.d.ts +6 -67
- package/lib/dates.js +13 -111
- package/lib/dates.js.map +1 -1
- package/lib/icons/CheckGreen.d.ts +2 -0
- package/lib/icons/CheckGreen.js +7 -0
- package/lib/icons/CheckGreen.js.map +1 -0
- package/lib/icons/CloseWhite.d.ts +2 -0
- package/lib/icons/CloseWhite.js +7 -0
- package/lib/icons/CloseWhite.js.map +1 -0
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js +14 -20
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/CodeDetails.js +4 -6
- package/lib/seam/components/AccessCodeTable/CodeDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js +8 -8
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js +2 -2
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.d.ts +1 -0
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.js +9 -0
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.js.map +1 -0
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js +4 -6
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +1 -1
- package/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.js +3 -4
- package/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.js.map +1 -1
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js +3 -4
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +1 -2
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js +3 -4
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js +12 -9
- package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeForm.d.ts +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeForm.js +45 -46
- package/lib/ui/AccessCodeForm/AccessCodeForm.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeFormDatePicker.d.ts +8 -7
- package/lib/ui/AccessCodeForm/AccessCodeFormDatePicker.js +8 -4
- package/lib/ui/AccessCodeForm/AccessCodeFormDatePicker.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeFormTimeZonePicker.d.ts +8 -0
- package/lib/ui/AccessCodeForm/AccessCodeFormTimeZonePicker.js +17 -0
- package/lib/ui/AccessCodeForm/{AccessCodeFormTimezonePicker.js.map → AccessCodeFormTimeZonePicker.js.map} +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeFormTimes.d.ts +3 -2
- package/lib/ui/AccessCodeForm/AccessCodeFormTimes.js +3 -2
- package/lib/ui/AccessCodeForm/AccessCodeFormTimes.js.map +1 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.d.ts +2 -2
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js +9 -9
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +1 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.d.ts +3 -3
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js +4 -4
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js.map +1 -1
- package/lib/ui/ClimateSettingForm/{ClimateSettingScheduleFormTimezonePicker.d.ts → ClimateSettingScheduleFormTimeZonePicker.d.ts} +2 -2
- package/lib/ui/ClimateSettingForm/{ClimateSettingScheduleFormTimezonePicker.js → ClimateSettingScheduleFormTimeZonePicker.js} +5 -5
- package/lib/ui/ClimateSettingForm/{ClimateSettingScheduleFormTimezonePicker.js.map → ClimateSettingScheduleFormTimeZonePicker.js.map} +1 -1
- package/lib/ui/LoadingToast/LoadingToast.js +12 -14
- package/lib/ui/LoadingToast/LoadingToast.js.map +1 -1
- package/lib/ui/Menu/Menu.js +32 -25
- package/lib/ui/Menu/Menu.js.map +1 -1
- package/lib/ui/Snackbar/Snackbar.d.ts +16 -0
- package/lib/ui/Snackbar/Snackbar.js +38 -0
- package/lib/ui/Snackbar/Snackbar.js.map +1 -0
- package/lib/ui/TimeZonePicker/TimeZonePicker.d.ts +8 -0
- package/lib/ui/TimeZonePicker/TimeZonePicker.js +28 -0
- package/lib/ui/TimeZonePicker/TimeZonePicker.js.map +1 -0
- package/lib/ui/device/BatteryStatus.js +10 -6
- package/lib/ui/device/BatteryStatus.js.map +1 -1
- package/lib/ui/thermostat/ClimateModeMenu.js +4 -4
- package/lib/ui/thermostat/ClimateModeMenu.js.map +1 -1
- package/lib/ui/use-now.d.ts +2 -0
- package/lib/ui/{use-current-time.js → use-now.js} +2 -2
- package/lib/ui/use-now.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -2
- package/src/lib/dates.ts +19 -135
- package/src/lib/icons/CheckGreen.tsx +36 -0
- package/src/lib/icons/CloseWhite.tsx +36 -0
- package/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx +6 -9
- package/src/lib/seam/components/AccessCodeTable/CodeDetails.tsx +2 -3
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.tsx +9 -9
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx +5 -8
- package/src/lib/seam/components/ClimateSettingScheduleDetails/dates.ts +10 -0
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.tsx +2 -3
- package/src/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.tsx +3 -4
- package/src/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.tsx +3 -5
- package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +1 -6
- package/src/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.tsx +3 -4
- package/src/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.tsx +20 -15
- package/src/lib/telemetry/client.ts +1 -0
- package/src/lib/ui/AccessCodeForm/AccessCodeForm.tsx +61 -67
- package/src/lib/ui/AccessCodeForm/AccessCodeFormDatePicker.tsx +28 -18
- package/src/lib/ui/AccessCodeForm/{AccessCodeFormTimezonePicker.tsx → AccessCodeFormTimeZonePicker.tsx} +10 -10
- package/src/lib/ui/AccessCodeForm/AccessCodeFormTimes.tsx +9 -5
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.tsx +12 -12
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.tsx +10 -10
- package/src/lib/ui/ClimateSettingForm/{ClimateSettingScheduleFormTimezonePicker.tsx → ClimateSettingScheduleFormTimeZonePicker.tsx} +8 -8
- package/src/lib/ui/LoadingToast/LoadingToast.tsx +13 -16
- package/src/lib/ui/Menu/Menu.tsx +50 -40
- package/src/lib/ui/Snackbar/Snackbar.tsx +97 -0
- package/src/lib/ui/TimeZonePicker/TimeZonePicker.tsx +69 -0
- package/src/lib/ui/device/BatteryStatus.tsx +23 -14
- package/src/lib/ui/thermostat/ClimateModeMenu.tsx +4 -4
- package/src/lib/ui/{use-current-time.ts → use-now.ts} +1 -1
- package/src/lib/version.ts +1 -1
- package/src/styles/_access-code-form.scss +4 -4
- package/src/styles/_climate-setting-schedule-form.scss +1 -1
- package/src/styles/_colors.scss +2 -0
- package/src/styles/_loading_toast.scss +5 -16
- package/src/styles/_main.scss +4 -2
- package/src/styles/_motion.scss +34 -0
- package/src/styles/_snackbar.scss +107 -0
- package/src/styles/_supported-device-table.scss +9 -0
- package/src/styles/{_timezone-picker.scss → _time-zone-picker.scss} +3 -3
- package/lib/ui/AccessCodeForm/AccessCodeFormTimezonePicker.d.ts +0 -8
- package/lib/ui/AccessCodeForm/AccessCodeFormTimezonePicker.js +0 -17
- package/lib/ui/TimezonePicker/TimezonePicker.d.ts +0 -8
- package/lib/ui/TimezonePicker/TimezonePicker.js +0 -28
- package/lib/ui/TimezonePicker/TimezonePicker.js.map +0 -1
- package/lib/ui/use-current-time.d.ts +0 -2
- package/lib/ui/use-current-time.js.map +0 -1
- package/src/lib/ui/TimezonePicker/TimezonePicker.tsx +0 -70
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
$row-padding: 8px;
|
|
4
4
|
|
|
5
5
|
@mixin all {
|
|
6
|
+
.seam-supported-device-table-content-wrap {
|
|
7
|
+
background: colors.$white;
|
|
8
|
+
}
|
|
9
|
+
|
|
6
10
|
.seam-supported-device-table-filter-area {
|
|
7
11
|
width: 100%;
|
|
8
12
|
display: flex;
|
|
@@ -372,4 +376,9 @@ $row-padding: 8px;
|
|
|
372
376
|
align-items: center;
|
|
373
377
|
}
|
|
374
378
|
}
|
|
379
|
+
|
|
380
|
+
.seam-supported-device-table-filter-menu-content {
|
|
381
|
+
max-height: 300px;
|
|
382
|
+
overflow: auto;
|
|
383
|
+
}
|
|
375
384
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
@use './colors';
|
|
2
2
|
|
|
3
3
|
@mixin all {
|
|
4
|
-
.seam-
|
|
5
|
-
.seam-manual-
|
|
4
|
+
.seam-time-zone-picker {
|
|
5
|
+
.seam-manual-time-zone-checkbox {
|
|
6
6
|
margin-bottom: 8px;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
> .seam-
|
|
9
|
+
> .seam-time-zone-select {
|
|
10
10
|
background: colors.$white;
|
|
11
11
|
padding: 0 12px;
|
|
12
12
|
width: 100%;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" resolution-mode="require"/>
|
|
2
|
-
interface AccessCodeFormTimezonePickerProps {
|
|
3
|
-
value: string;
|
|
4
|
-
onChange: (timezone: string) => void;
|
|
5
|
-
onClose: () => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function AccessCodeFormTimezonePicker({ onChange, value, onClose, }: AccessCodeFormTimezonePickerProps): JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import { ContentHeader } from '../../../lib/ui/layout/ContentHeader.js';
|
|
4
|
-
import { TimezonePicker } from '../../../lib/ui/TimezonePicker/TimezonePicker.js';
|
|
5
|
-
export function AccessCodeFormTimezonePicker({ onChange, value, onClose, }) {
|
|
6
|
-
const [title, setTitle] = useState(t.titleAuto);
|
|
7
|
-
return (_jsxs("div", { className: 'seam-access-code-timezone-picker', children: [_jsx(ContentHeader, { title: title, onBack: onClose }), _jsx("div", { className: 'seam-content', children: _jsx(TimezonePicker, { value: value, onChange: onChange, onManualTimezoneSelected: (manualTimezoneSelected) => {
|
|
8
|
-
setTitle(manualTimezoneSelected ? t.titleManual : t.titleAuto);
|
|
9
|
-
} }) })] }));
|
|
10
|
-
}
|
|
11
|
-
const t = {
|
|
12
|
-
titleAuto: 'Time Zone (automatic)',
|
|
13
|
-
titleManual: 'Time Zone (manual)',
|
|
14
|
-
utc: 'UTC',
|
|
15
|
-
setTimezoneManuallyLabel: 'Use local time zone',
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=AccessCodeFormTimezonePicker.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" resolution-mode="require"/>
|
|
2
|
-
interface TimezonePickerProps {
|
|
3
|
-
value: string;
|
|
4
|
-
onChange: (timezone: string) => void;
|
|
5
|
-
onManualTimezoneSelected?: (manualTimezoneSelected: boolean) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function TimezonePicker({ onChange, value, onManualTimezoneSelected, }: TimezonePickerProps): JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
3
|
-
import { getBrowserTimezone, getTimezoneLabel, getTimezoneOffset, getTimezones, } from '../../../lib/dates.js';
|
|
4
|
-
import { Checkbox } from '../../../lib/ui/Checkbox.js';
|
|
5
|
-
import { handleString } from '../../../lib/ui/TextField/TextField.js';
|
|
6
|
-
export function TimezonePicker({ onChange, value, onManualTimezoneSelected, }) {
|
|
7
|
-
const [manualTimezoneEnabled, setManualTimezoneEnabled] = useState(false);
|
|
8
|
-
const isBrowserTimezoneSelected = value === getBrowserTimezone();
|
|
9
|
-
const isManualTimezoneSelected = !isBrowserTimezoneSelected || manualTimezoneEnabled;
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (onManualTimezoneSelected != null)
|
|
12
|
-
onManualTimezoneSelected(isManualTimezoneSelected);
|
|
13
|
-
}, [isManualTimezoneSelected, onManualTimezoneSelected]);
|
|
14
|
-
const handleChangeManualTimezone = (enabled) => {
|
|
15
|
-
setManualTimezoneEnabled(enabled);
|
|
16
|
-
if (!enabled) {
|
|
17
|
-
onChange(getBrowserTimezone());
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
return (_jsxs("div", { className: 'seam-timezone-picker', children: [_jsx(Checkbox, { label: t.setTimezoneManuallyLabel, checked: !isManualTimezoneSelected, onChange: (manual) => {
|
|
21
|
-
handleChangeManualTimezone(!manual);
|
|
22
|
-
}, className: 'seam-manual-timezone-checkbox' }), _jsx("select", { value: value, onChange: handleString(onChange), className: 'seam-timezone-select', children: getTimezones().map((timezone) => (_jsxs("option", { value: timezone, children: [t.utc, " ", getTimezoneOffset(timezone), " ", getTimezoneLabel(timezone)] }, timezone))) })] }));
|
|
23
|
-
}
|
|
24
|
-
const t = {
|
|
25
|
-
utc: 'UTC',
|
|
26
|
-
setTimezoneManuallyLabel: 'Use local time zone',
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=TimezonePicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimezonePicker.js","sourceRoot":"","sources":["../../../src/lib/ui/TimezonePicker/TimezonePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAQ5D,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,wBAAwB,GACJ;IACpB,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzE,MAAM,yBAAyB,GAAG,KAAK,KAAK,kBAAkB,EAAE,CAAA;IAChE,MAAM,wBAAwB,GAC5B,CAAC,yBAAyB,IAAI,qBAAqB,CAAA;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,wBAAwB,IAAI,IAAI;YAClC,wBAAwB,CAAC,wBAAwB,CAAC,CAAA;IACtD,CAAC,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAExD,MAAM,0BAA0B,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC5D,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO,EAAE;YACZ,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAA;SAC/B;IACH,CAAC,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,CAAC,wBAAwB,EACjC,OAAO,EAAE,CAAC,wBAAwB,EAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;oBACnB,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;gBACrC,CAAC,EACD,SAAS,EAAC,+BAA+B,GACzC,EAEF,iBACE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,SAAS,EAAC,sBAAsB,YAE/B,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAChC,kBAAQ,KAAK,EAAE,QAAQ,aACpB,CAAC,CAAC,GAAG,OAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAG,gBAAgB,CAAC,QAAQ,CAAC,KADrC,QAAQ,CAE7B,CACV,CAAC,GACK,IACL,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,GAAG,EAAE,KAAK;IACV,wBAAwB,EAAE,qBAAqB;CAChD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-current-time.js","sourceRoot":"","sources":["../../src/lib/ui/use-current-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;IAE1D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,WAAW,CAAC,MAAM,CAAC,CAAA;IAEnB,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
getBrowserTimezone,
|
|
5
|
-
getTimezoneLabel,
|
|
6
|
-
getTimezoneOffset,
|
|
7
|
-
getTimezones,
|
|
8
|
-
} from 'lib/dates.js'
|
|
9
|
-
import { Checkbox } from 'lib/ui/Checkbox.js'
|
|
10
|
-
import { handleString } from 'lib/ui/TextField/TextField.js'
|
|
11
|
-
|
|
12
|
-
interface TimezonePickerProps {
|
|
13
|
-
value: string
|
|
14
|
-
onChange: (timezone: string) => void
|
|
15
|
-
onManualTimezoneSelected?: (manualTimezoneSelected: boolean) => void
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function TimezonePicker({
|
|
19
|
-
onChange,
|
|
20
|
-
value,
|
|
21
|
-
onManualTimezoneSelected,
|
|
22
|
-
}: TimezonePickerProps): JSX.Element {
|
|
23
|
-
const [manualTimezoneEnabled, setManualTimezoneEnabled] = useState(false)
|
|
24
|
-
|
|
25
|
-
const isBrowserTimezoneSelected = value === getBrowserTimezone()
|
|
26
|
-
const isManualTimezoneSelected =
|
|
27
|
-
!isBrowserTimezoneSelected || manualTimezoneEnabled
|
|
28
|
-
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (onManualTimezoneSelected != null)
|
|
31
|
-
onManualTimezoneSelected(isManualTimezoneSelected)
|
|
32
|
-
}, [isManualTimezoneSelected, onManualTimezoneSelected])
|
|
33
|
-
|
|
34
|
-
const handleChangeManualTimezone = (enabled: boolean): void => {
|
|
35
|
-
setManualTimezoneEnabled(enabled)
|
|
36
|
-
if (!enabled) {
|
|
37
|
-
onChange(getBrowserTimezone())
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<div className='seam-timezone-picker'>
|
|
43
|
-
<Checkbox
|
|
44
|
-
label={t.setTimezoneManuallyLabel}
|
|
45
|
-
checked={!isManualTimezoneSelected}
|
|
46
|
-
onChange={(manual) => {
|
|
47
|
-
handleChangeManualTimezone(!manual)
|
|
48
|
-
}}
|
|
49
|
-
className='seam-manual-timezone-checkbox'
|
|
50
|
-
/>
|
|
51
|
-
|
|
52
|
-
<select
|
|
53
|
-
value={value}
|
|
54
|
-
onChange={handleString(onChange)}
|
|
55
|
-
className='seam-timezone-select'
|
|
56
|
-
>
|
|
57
|
-
{getTimezones().map((timezone) => (
|
|
58
|
-
<option value={timezone} key={timezone}>
|
|
59
|
-
{t.utc} {getTimezoneOffset(timezone)} {getTimezoneLabel(timezone)}
|
|
60
|
-
</option>
|
|
61
|
-
))}
|
|
62
|
-
</select>
|
|
63
|
-
</div>
|
|
64
|
-
)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const t = {
|
|
68
|
-
utc: 'UTC',
|
|
69
|
-
setTimezoneManuallyLabel: 'Use local time zone',
|
|
70
|
-
}
|