@seamapi/react 3.1.1 → 4.0.0-beta.1
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 +2 -2
- package/dist/elements.js +9897 -10374
- package/dist/elements.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.d.ts +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js +3 -3
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.d.ts +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js +4 -4
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.d.ts +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.js +1 -2
- package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.d.ts +1 -1
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js +2 -2
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.d.ts +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +2 -40
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.d.ts +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.js +2 -2
- package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
- package/lib/seam/components/common-props.d.ts +0 -1
- package/lib/seam/components/common-props.js.map +1 -1
- package/lib/seam/components/index.d.ts +0 -2
- package/lib/seam/components/index.js +0 -2
- package/lib/seam/components/index.js.map +1 -1
- package/lib/seam/index.d.ts +0 -2
- package/lib/seam/index.js +0 -2
- package/lib/seam/index.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeForm.js +3 -3
- package/lib/ui/AccessCodeForm/AccessCodeForm.js.map +1 -1
- package/lib/ui/thermostat/FanModeMenu.js +1 -0
- package/lib/ui/thermostat/FanModeMenu.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -3
- package/src/lib/element.tsx +0 -1
- package/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx +0 -3
- package/src/lib/seam/components/AccessCodeTable/AccessCodeTable.tsx +0 -4
- package/src/lib/seam/components/DeviceDetails/DeviceDetails.tsx +0 -2
- package/src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx +0 -2
- package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +0 -137
- package/src/lib/seam/components/DeviceTable/DeviceTable.tsx +0 -2
- package/src/lib/seam/components/common-props.tsx +0 -1
- package/src/lib/seam/components/elements.ts +0 -2
- package/src/lib/seam/components/index.ts +0 -2
- package/src/lib/seam/index.ts +0 -2
- package/src/lib/ui/AccessCodeForm/AccessCodeForm.tsx +3 -4
- package/src/lib/ui/thermostat/FanModeMenu.tsx +1 -0
- package/src/lib/version.ts +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.d.ts +0 -7
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js +0 -43
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.d.ts +0 -7
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js +0 -55
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.d.ts +0 -5
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js +0 -31
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.d.ts +0 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.js +0 -9
- package/lib/seam/components/ClimateSettingScheduleDetails/dates.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.d.ts +0 -8
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.js +0 -10
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.d.ts +0 -5
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js +0 -28
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +0 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.d.ts +0 -14
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js +0 -80
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +0 -1
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.d.ts +0 -5
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js +0 -29
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +0 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.d.ts +0 -6
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js +0 -16
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js.map +0 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.d.ts +0 -6
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js +0 -28
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js.map +0 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.d.ts +0 -7
- package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.js +0 -25
- package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.js.map +0 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.d.ts +0 -6
- package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.js +0 -27
- package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.js.map +0 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.d.ts +0 -6
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js +0 -46
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js.map +0 -1
- package/lib/seam/thermostats/use-update-thermostat.d.ts +0 -6
- package/lib/seam/thermostats/use-update-thermostat.js +0 -51
- package/lib/seam/thermostats/use-update-thermostat.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.d.ts +0 -32
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js +0 -85
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.d.ts +0 -13
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.js +0 -44
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.d.ts +0 -10
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.js +0 -24
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.d.ts +0 -10
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.js +0 -10
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.d.ts +0 -15
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js +0 -30
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js.map +0 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.d.ts +0 -9
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.js +0 -16
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.js.map +0 -1
- package/lib/ui/ClimateSettingForm/set-point-bounds.d.ts +0 -4
- package/lib/ui/ClimateSettingForm/set-point-bounds.js +0 -17
- package/lib/ui/ClimateSettingForm/set-point-bounds.js.map +0 -1
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.tsx +0 -107
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.element.ts +0 -11
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx +0 -175
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.tsx +0 -72
- package/src/lib/seam/components/ClimateSettingScheduleDetails/dates.ts +0 -10
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.tsx +0 -35
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.tsx +0 -60
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.element.ts +0 -17
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.tsx +0 -220
- package/src/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.element.ts +0 -9
- package/src/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.tsx +0 -56
- package/src/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.ts +0 -34
- package/src/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.ts +0 -53
- package/src/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.ts +0 -53
- package/src/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.ts +0 -51
- package/src/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.ts +0 -83
- package/src/lib/seam/thermostats/use-update-thermostat.ts +0 -90
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.tsx +0 -189
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.tsx +0 -118
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.tsx +0 -79
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.tsx +0 -36
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.tsx +0 -120
- package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.tsx +0 -43
- package/src/lib/ui/ClimateSettingForm/set-point-bounds.ts +0 -31
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { useState } from 'react'
|
|
2
|
-
|
|
3
|
-
import { useDevice } from 'lib/seam/devices/use-device.js'
|
|
4
|
-
import type { HvacModeSetting } from 'lib/seam/thermostats/thermostat-device.js'
|
|
5
|
-
import { Button } from 'lib/ui/Button.js'
|
|
6
|
-
import { InputLabel } from 'lib/ui/InputLabel.js'
|
|
7
|
-
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
|
|
8
|
-
import { ClimateSettingControlGroup } from 'lib/ui/thermostat/ClimateSettingControlGroup.js'
|
|
9
|
-
|
|
10
|
-
interface ClimateSettingScheduleFormDefaultClimateSettingProps {
|
|
11
|
-
title: string
|
|
12
|
-
deviceId: string
|
|
13
|
-
onBack: () => void
|
|
14
|
-
onCancel: (() => void) | undefined
|
|
15
|
-
onSave: () => void
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function ClimateSettingScheduleFormDefaultClimateSetting({
|
|
19
|
-
title,
|
|
20
|
-
deviceId,
|
|
21
|
-
onBack,
|
|
22
|
-
onCancel,
|
|
23
|
-
onSave,
|
|
24
|
-
}: ClimateSettingScheduleFormDefaultClimateSettingProps): JSX.Element {
|
|
25
|
-
const { device } = useDevice({
|
|
26
|
-
device_id: deviceId,
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
const [mode, setMode] = useState<HvacModeSetting>('heat_cool')
|
|
30
|
-
const [heatValue, setHeatValue] = useState(70)
|
|
31
|
-
const [coolValue, setCoolValue] = useState(75)
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<>
|
|
35
|
-
<ContentHeader
|
|
36
|
-
title={title}
|
|
37
|
-
onBack={onBack}
|
|
38
|
-
subheading={device?.properties.name}
|
|
39
|
-
/>
|
|
40
|
-
<div className='seam-main'>
|
|
41
|
-
<div className='seam-climate-setting-schedule-form-default-climate-setting'>
|
|
42
|
-
<div className='seam-content'>
|
|
43
|
-
<div className='seam-default-climate-setting-message'>
|
|
44
|
-
<p>{t.defaultClimateMessage}</p>
|
|
45
|
-
</div>
|
|
46
|
-
<div className='seam-control-group-title'>
|
|
47
|
-
<InputLabel>{t.defaultClimate}</InputLabel>
|
|
48
|
-
<span className='seam-label'>{t.defautClimateSubHeading}</span>
|
|
49
|
-
</div>
|
|
50
|
-
<ClimateSettingControlGroup
|
|
51
|
-
mode={mode}
|
|
52
|
-
onModeChange={setMode}
|
|
53
|
-
heatValue={heatValue}
|
|
54
|
-
onHeatValueChange={setHeatValue}
|
|
55
|
-
coolValue={coolValue}
|
|
56
|
-
onCoolValueChange={setCoolValue}
|
|
57
|
-
/>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
<div className='seam-actions'>
|
|
61
|
-
<Button onClick={onCancel}>{t.cancel}</Button>
|
|
62
|
-
<Button variant='solid' onClick={onSave}>
|
|
63
|
-
{t.save}
|
|
64
|
-
</Button>
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
</>
|
|
68
|
-
)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const t = {
|
|
72
|
-
defaultClimate: 'Default Climate',
|
|
73
|
-
defautClimateSubHeading:
|
|
74
|
-
'Choose the default mode and climate for this device',
|
|
75
|
-
defaultClimateMessage:
|
|
76
|
-
'This device doesn’t have a default climate set up yet. Choose the climate you’d like the device to fall back to after scheduled climates reach their ends.',
|
|
77
|
-
cancel: 'Cancel',
|
|
78
|
-
save: 'Save',
|
|
79
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { type Control, Controller } from 'react-hook-form'
|
|
2
|
-
|
|
3
|
-
import type { ClimateSettingScheduleFormFields } from 'lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js'
|
|
4
|
-
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
|
|
5
|
-
import { ThermostatSelect } from 'lib/ui/thermostat/ThermostatSelect.js'
|
|
6
|
-
|
|
7
|
-
interface ClimateSettingScheduleFormDeviceSelectProps {
|
|
8
|
-
title: string
|
|
9
|
-
control: Control<ClimateSettingScheduleFormFields>
|
|
10
|
-
onBack: (() => void) | undefined
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function ClimateSettingScheduleFormDeviceSelect({
|
|
14
|
-
title,
|
|
15
|
-
control,
|
|
16
|
-
onBack,
|
|
17
|
-
}: ClimateSettingScheduleFormDeviceSelectProps): JSX.Element {
|
|
18
|
-
return (
|
|
19
|
-
<>
|
|
20
|
-
<ContentHeader title={title} onBack={onBack} />
|
|
21
|
-
<div className='seam-main'>
|
|
22
|
-
<Controller
|
|
23
|
-
name='deviceId'
|
|
24
|
-
control={control}
|
|
25
|
-
render={({ field: { onChange } }) => (
|
|
26
|
-
<ThermostatSelect
|
|
27
|
-
onSelect={(deviceId) => {
|
|
28
|
-
onChange(deviceId)
|
|
29
|
-
}}
|
|
30
|
-
/>
|
|
31
|
-
)}
|
|
32
|
-
/>
|
|
33
|
-
</div>
|
|
34
|
-
</>
|
|
35
|
-
)
|
|
36
|
-
}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { type Control, Controller } from 'react-hook-form'
|
|
2
|
-
|
|
3
|
-
import { formatTimeZone } from 'lib/dates.js'
|
|
4
|
-
import { ChevronRightIcon } from 'lib/icons/ChevronRight.js'
|
|
5
|
-
import { useDevice } from 'lib/seam/devices/use-device.js'
|
|
6
|
-
import { Button } from 'lib/ui/Button.js'
|
|
7
|
-
import type { ClimateSettingScheduleFormFields } from 'lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js'
|
|
8
|
-
import { DateTimePicker } from 'lib/ui/DateTimePicker/DateTimePicker.js'
|
|
9
|
-
import { FormField } from 'lib/ui/FormField.js'
|
|
10
|
-
import { InputLabel } from 'lib/ui/InputLabel.js'
|
|
11
|
-
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
|
|
12
|
-
import { TextField } from 'lib/ui/TextField/TextField.js'
|
|
13
|
-
|
|
14
|
-
interface ClimateSettingScheduleFormNameAndScheduleProps {
|
|
15
|
-
title: string
|
|
16
|
-
control: Control<ClimateSettingScheduleFormFields>
|
|
17
|
-
deviceId: string
|
|
18
|
-
timeZone: string
|
|
19
|
-
onBack: () => void
|
|
20
|
-
onCancel: (() => void) | undefined
|
|
21
|
-
onNext: () => void
|
|
22
|
-
onChangeTimeZone: () => void
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function ClimateSettingScheduleFormNameAndSchedule({
|
|
26
|
-
title,
|
|
27
|
-
control,
|
|
28
|
-
deviceId,
|
|
29
|
-
timeZone,
|
|
30
|
-
onBack,
|
|
31
|
-
onCancel,
|
|
32
|
-
onNext,
|
|
33
|
-
onChangeTimeZone,
|
|
34
|
-
}: ClimateSettingScheduleFormNameAndScheduleProps): JSX.Element {
|
|
35
|
-
const { device } = useDevice({
|
|
36
|
-
device_id: deviceId,
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
<ContentHeader
|
|
42
|
-
title={title}
|
|
43
|
-
onBack={onBack}
|
|
44
|
-
subheading={device?.properties.name}
|
|
45
|
-
/>
|
|
46
|
-
<div className='seam-main'>
|
|
47
|
-
<div className='seam-climate-setting-schedule-form-name-and-schedule'>
|
|
48
|
-
<div className='seam-content'>
|
|
49
|
-
<FormField>
|
|
50
|
-
<InputLabel>{t.nameInputLabel}</InputLabel>
|
|
51
|
-
<Controller
|
|
52
|
-
name='name'
|
|
53
|
-
control={control}
|
|
54
|
-
defaultValue=''
|
|
55
|
-
render={({ field, fieldState: { invalid, error } }) => {
|
|
56
|
-
return (
|
|
57
|
-
<TextField
|
|
58
|
-
{...field}
|
|
59
|
-
size='large'
|
|
60
|
-
clearable
|
|
61
|
-
hasError={invalid}
|
|
62
|
-
helperText={error?.message}
|
|
63
|
-
/>
|
|
64
|
-
)
|
|
65
|
-
}}
|
|
66
|
-
/>
|
|
67
|
-
</FormField>
|
|
68
|
-
|
|
69
|
-
<FormField>
|
|
70
|
-
<InputLabel>{t.startTimeLabel}</InputLabel>
|
|
71
|
-
<div className='seam-time-zone'>
|
|
72
|
-
<span className='seam-label'>{t.selectedTimeZoneLabel}</span>
|
|
73
|
-
<span className='seam-selected' onClick={onChangeTimeZone}>
|
|
74
|
-
{formatTimeZone(timeZone)}
|
|
75
|
-
<ChevronRightIcon />
|
|
76
|
-
</span>
|
|
77
|
-
</div>
|
|
78
|
-
<Controller
|
|
79
|
-
name='startDate'
|
|
80
|
-
control={control}
|
|
81
|
-
defaultValue=''
|
|
82
|
-
render={({ field }) => (
|
|
83
|
-
<DateTimePicker {...field} size='large' />
|
|
84
|
-
)}
|
|
85
|
-
/>
|
|
86
|
-
</FormField>
|
|
87
|
-
<FormField>
|
|
88
|
-
<InputLabel>{t.endTimeLabel}</InputLabel>
|
|
89
|
-
<Controller
|
|
90
|
-
name='endDate'
|
|
91
|
-
control={control}
|
|
92
|
-
defaultValue=''
|
|
93
|
-
render={({ field }) => (
|
|
94
|
-
<DateTimePicker {...field} size='large' />
|
|
95
|
-
)}
|
|
96
|
-
/>
|
|
97
|
-
</FormField>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
<div className='seam-actions'>
|
|
101
|
-
<Button onClick={onCancel}>{t.cancel}</Button>
|
|
102
|
-
<Button variant='solid' onClick={onNext}>
|
|
103
|
-
{t.next}
|
|
104
|
-
</Button>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
</>
|
|
108
|
-
)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const t = {
|
|
112
|
-
nameInputLabel: 'Name the climate setting schedule',
|
|
113
|
-
startTimeLabel: 'Start time',
|
|
114
|
-
endTimeLabel: 'End time',
|
|
115
|
-
addNewClimateSettingSchedule: 'Add a climate setting schedule',
|
|
116
|
-
cancel: 'Cancel',
|
|
117
|
-
save: 'Save',
|
|
118
|
-
next: 'Next',
|
|
119
|
-
selectedTimeZoneLabel: 'All times in',
|
|
120
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { useState } from 'react'
|
|
2
|
-
import { type Control, Controller } from 'react-hook-form'
|
|
3
|
-
|
|
4
|
-
import type { ClimateSettingScheduleFormFields } from 'lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js'
|
|
5
|
-
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
|
|
6
|
-
import { TimeZonePicker } from 'lib/ui/TimeZonePicker/TimeZonePicker.js'
|
|
7
|
-
|
|
8
|
-
interface ClimateSettingScheduleFormTimeZonePickerProps {
|
|
9
|
-
control: Control<ClimateSettingScheduleFormFields>
|
|
10
|
-
onClose: () => void
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function ClimateSettingScheduleFormTimeZonePicker({
|
|
14
|
-
control,
|
|
15
|
-
onClose,
|
|
16
|
-
}: ClimateSettingScheduleFormTimeZonePickerProps): JSX.Element {
|
|
17
|
-
const [title, setTitle] = useState(t.titleAuto)
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<>
|
|
21
|
-
<ContentHeader title={title} onBack={onClose} />
|
|
22
|
-
<div className='seam-main'>
|
|
23
|
-
<Controller
|
|
24
|
-
name='timeZone'
|
|
25
|
-
control={control}
|
|
26
|
-
render={({ field }) => (
|
|
27
|
-
<TimeZonePicker
|
|
28
|
-
{...field}
|
|
29
|
-
onManualTimeZoneSelected={(manualTimeZoneSelected) => {
|
|
30
|
-
setTitle(manualTimeZoneSelected ? t.titleManual : t.titleAuto)
|
|
31
|
-
}}
|
|
32
|
-
/>
|
|
33
|
-
)}
|
|
34
|
-
/>
|
|
35
|
-
</div>
|
|
36
|
-
</>
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const t = {
|
|
41
|
-
titleAuto: 'Time Zone (automatic)',
|
|
42
|
-
titleManual: 'Time Zone (manual)',
|
|
43
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { ThermostatDevice } from 'lib/seam/thermostats/thermostat-device.js'
|
|
2
|
-
import type { TemperatureControlGroupProps } from 'lib/ui/thermostat/TemperatureControlGroup.js'
|
|
3
|
-
|
|
4
|
-
export type SetPointBounds = Partial<
|
|
5
|
-
Pick<
|
|
6
|
-
TemperatureControlGroupProps,
|
|
7
|
-
'minCool' | 'maxCool' | 'minHeat' | 'maxHeat' | 'delta'
|
|
8
|
-
>
|
|
9
|
-
>
|
|
10
|
-
|
|
11
|
-
export const getSetPointBounds = (device: ThermostatDevice): SetPointBounds => {
|
|
12
|
-
const { properties } = device
|
|
13
|
-
|
|
14
|
-
const setPointBounds: SetPointBounds = {}
|
|
15
|
-
|
|
16
|
-
if (properties.available_hvac_mode_settings.includes('cool')) {
|
|
17
|
-
setPointBounds.minCool = properties.min_cooling_set_point_fahrenheit
|
|
18
|
-
setPointBounds.maxCool = properties.max_cooling_set_point_fahrenheit
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (properties.available_hvac_mode_settings.includes('heat')) {
|
|
22
|
-
setPointBounds.minHeat = properties.min_heating_set_point_fahrenheit
|
|
23
|
-
setPointBounds.maxHeat = properties.max_heating_set_point_fahrenheit
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (properties.available_hvac_mode_settings.includes('heat_cool')) {
|
|
27
|
-
setPointBounds.delta = properties.min_heating_cooling_delta_fahrenheit
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return setPointBounds
|
|
31
|
-
}
|