@seamapi/react 2.11.0 → 2.12.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 +4953 -4878
- package/dist/elements.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js +13 -4
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +2 -2
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.d.ts +6 -0
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js +51 -0
- package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx +81 -49
- package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +2 -0
- package/src/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.ts +92 -0
- package/src/lib/version.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { ArrowRightIcon } from '../../../../lib/icons/ArrowRight.js';
|
|
@@ -6,17 +6,21 @@ import { ClimateSettingScheduleCard } from '../../../../lib/seam/components/Clim
|
|
|
6
6
|
import { withRequiredCommonProps, } from '../../../../lib/seam/components/common-props.js';
|
|
7
7
|
import { NestedDeviceDetails } from '../../../../lib/seam/components/DeviceDetails/DeviceDetails.js';
|
|
8
8
|
import { useClimateSettingSchedule } from '../../../../lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js';
|
|
9
|
+
import { useUpdateClimateSettingSchedule } from '../../../../lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js';
|
|
9
10
|
import { useComponentTelemetry } from '../../../../lib/telemetry/index.js';
|
|
10
11
|
import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
|
|
11
12
|
import { DetailRow } from '../../../../lib/ui/layout/DetailRow.js';
|
|
12
13
|
import { DetailSection } from '../../../../lib/ui/layout/DetailSection.js';
|
|
13
14
|
import { DetailSectionGroup } from '../../../../lib/ui/layout/DetailSectionGroup.js';
|
|
15
|
+
import { Snackbar } from '../../../../lib/ui/Snackbar/Snackbar.js';
|
|
16
|
+
import { Switch } from '../../../../lib/ui/Switch/Switch.js';
|
|
14
17
|
import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSettingStatus.js';
|
|
15
18
|
import { formatDateTime } from './dates.js';
|
|
16
19
|
export const NestedClimateSettingScheduleDetails = withRequiredCommonProps(ClimateSettingScheduleDetails);
|
|
17
20
|
export function ClimateSettingScheduleDetails({ climateSettingScheduleId, disableLockUnlock = false, disableDeleteAccessCode = false, onBack, className, errorFilter = () => true, warningFilter = () => true, disableCreateAccessCode, disableEditAccessCode, disableResourceIds = false, disableClimateSettingSchedules, }) {
|
|
18
21
|
useComponentTelemetry('ClimateSettingScheduleDetails');
|
|
19
22
|
const { climateSettingSchedule } = useClimateSettingSchedule(climateSettingScheduleId);
|
|
23
|
+
const { mutate, isSuccess, isError } = useUpdateClimateSettingSchedule();
|
|
20
24
|
const [selectedDeviceId, selectDevice] = useState(null);
|
|
21
25
|
if (climateSettingSchedule == null) {
|
|
22
26
|
return null;
|
|
@@ -27,7 +31,12 @@ export function ClimateSettingScheduleDetails({ climateSettingScheduleId, disabl
|
|
|
27
31
|
selectDevice(null);
|
|
28
32
|
}, className: className }));
|
|
29
33
|
}
|
|
30
|
-
return (_jsxs("div", { className: classNames('seam-climate-setting-schedule-details', className), children: [_jsx(ContentHeader, { title: t.climateSettingSchedule, onBack: onBack }), _jsxs("div", { className: 'seam-climate-setting-schedule-details-content', children: [_jsx(ClimateSettingScheduleCard, { climateSettingScheduleId: climateSettingScheduleId, onSelectDevice: selectDevice }), _jsx("div", { className: 'seam-default-setting-message-container', children: _jsxs("span", { className: 'seam-default-setting-message', children: [t.defaultSettingMessagePart1, ' ', _jsx("span", { className: 'seam-default-setting-text', children: t.defaultSetting }), ' ', t.defaultSettingMessagePart2] }) }), _jsxs(DetailSectionGroup, { children: [_jsxs(DetailSection, { children: [_jsx(DetailRow, { label: t.startEndTime, children: _jsxs("span", { className: 'seam-climate-setting-details-value seam-climate-setting-details-schedule-range', children: [formatDateTime(climateSettingSchedule.schedule_starts_at), _jsx(ArrowRightIcon, {}), formatDateTime(climateSettingSchedule.schedule_ends_at)] }) }), _jsx(DetailRow, { label: t.climateSetting, children: _jsx(ClimateSettingStatus, { climateSetting: climateSettingSchedule, iconPlacement: 'right' }) }), _jsx(DetailRow, { label: t.allowManualOverride, children: _jsx("span", { className: 'seam-climate-setting-details-value', children:
|
|
34
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: classNames('seam-climate-setting-schedule-details', className), children: [_jsx(ContentHeader, { title: t.climateSettingSchedule, onBack: onBack }), _jsxs("div", { className: 'seam-climate-setting-schedule-details-content', children: [_jsx(ClimateSettingScheduleCard, { climateSettingScheduleId: climateSettingScheduleId, onSelectDevice: selectDevice }), _jsx("div", { className: 'seam-default-setting-message-container', children: _jsxs("span", { className: 'seam-default-setting-message', children: [t.defaultSettingMessagePart1, ' ', _jsx("span", { className: 'seam-default-setting-text', children: t.defaultSetting }), ' ', t.defaultSettingMessagePart2] }) }), _jsxs(DetailSectionGroup, { children: [_jsxs(DetailSection, { children: [_jsx(DetailRow, { label: t.startEndTime, children: _jsxs("span", { className: 'seam-climate-setting-details-value seam-climate-setting-details-schedule-range', children: [formatDateTime(climateSettingSchedule.schedule_starts_at), _jsx(ArrowRightIcon, {}), formatDateTime(climateSettingSchedule.schedule_ends_at)] }) }), _jsx(DetailRow, { label: t.climateSetting, children: _jsx(ClimateSettingStatus, { climateSetting: climateSettingSchedule, iconPlacement: 'right' }) }), _jsx(DetailRow, { label: t.allowManualOverride, children: _jsx("span", { className: 'seam-climate-setting-details-value', children: _jsx(Switch, { checked: isManualOverrideAllowed, onChange: (checked) => {
|
|
35
|
+
mutate({
|
|
36
|
+
climate_setting_schedule_id: climateSettingSchedule.climate_setting_schedule_id,
|
|
37
|
+
manual_override_allowed: checked,
|
|
38
|
+
});
|
|
39
|
+
} }) }) })] }), _jsx(DetailSection, { children: _jsx(DetailRow, { label: t.creationDate, children: _jsx("div", { className: 'seam-creation-date', children: formatDateTime(climateSettingSchedule.created_at) }) }) })] })] })] }), _jsx(Snackbar, { message: t.manualOverrideSuccess, variant: 'success', visible: isSuccess, automaticVisibility: true }), _jsx(Snackbar, { message: t.manualOverrideError, variant: 'error', visible: isError, automaticVisibility: true })] }));
|
|
31
40
|
}
|
|
32
41
|
const t = {
|
|
33
42
|
climateSettingSchedule: 'Climate setting schedule',
|
|
@@ -38,7 +47,7 @@ const t = {
|
|
|
38
47
|
defaultSettingMessagePart1: 'Thermostat will return to its',
|
|
39
48
|
defaultSetting: 'default setting',
|
|
40
49
|
defaultSettingMessagePart2: 'at end time.',
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
manualOverrideSuccess: 'Successfully updated manual override!',
|
|
51
|
+
manualOverrideError: 'Error updating manual override. Please try again.',
|
|
43
52
|
};
|
|
44
53
|
//# sourceMappingURL=ClimateSettingScheduleDetails.js.map
|
package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClimateSettingScheduleDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iFAAiF,CAAA;AAC5H,OAAO,EAEL,uBAAuB,GACxB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gFAAgF,CAAA;AAC1H,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM3C,MAAM,CAAC,MAAM,mCAAmC,GAAG,uBAAuB,CACxE,6BAA6B,CAC9B,CAAA;AAED,MAAM,UAAU,6BAA6B,CAAC,EAC5C,wBAAwB,EACxB,iBAAiB,GAAG,KAAK,EACzB,uBAAuB,GAAG,KAAK,EAC/B,MAAM,EACN,SAAS,EACT,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,EACxB,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,GAAG,KAAK,EAC1B,8BAA8B,GACK;IACnC,qBAAqB,CAAC,+BAA+B,CAAC,CAAA;IAEtD,MAAM,EAAE,sBAAsB,EAAE,GAAG,yBAAyB,CAC1D,wBAAwB,CACzB,CAAA;IAED,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEtE,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,uBAAuB,GAC3B,sBAAsB,CAAC,uBAAuB,IAAI,KAAK,CAAA;IAEzD,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,mBAAmB,IAClB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAC5C,uBAAuB,EAAE,uBAAuB,EAChD,kBAAkB,EAAE,kBAAkB,EACtC,8BAA8B,EAAE,8BAA8B,EAC9D,MAAM,EAAE,GAAG,EAAE;gBACX,YAAY,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC,EACD,SAAS,EAAE,SAAS,GACpB,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"ClimateSettingScheduleDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ export function ThermostatDeviceDetails({ device, onBack, className, errorFilter
|
|
|
48
48
|
? t.viewingClimateSchedules
|
|
49
49
|
: `${climateSettingSchedules.length} ${climateSettingSchedulesLabel}`, onClick: () => {
|
|
50
50
|
setClimateSettingsOpen(true);
|
|
51
|
-
}, children: _jsx("div", { className: 'seam-detail-row-rotated-icon', children: _jsx(ChevronWideIcon, {}) }) }) })), _jsxs(DetailSection, { label: t.currentSettings, tooltipContent: t.currentSettingsTooltip, children: [_jsx(ClimateSettingRow, { device: device }), _jsx(FanModeRow, { device: device })] }), !disableClimateSettingSchedules && (_jsxs(DetailSection, { label: t.defaultSettings, tooltipContent: t.defaultSettingsTooltip, children: [_jsx(DetailRow, { label: t.defaultClimate, children: device.properties.default_climate_setting != null ? (_jsx(ClimateSettingStatus, { climateSetting: device.properties.default_climate_setting, temperatureUnit: 'fahrenheit' })) : (_jsx("p", { children: t.none })) }), _jsx(ManualOverrideRow, { device: device })] })), _jsxs(DetailSection, { label: t.deviceDetails, children: [_jsx(DetailRow, { label: t.manufacturer, children: _jsxs("div", { className: 'seam-detail-row-hstack', children: [device.properties.model.manufacturer_display_name, device.properties.manufacturer === 'ecobee' && _jsx(BeeIcon, {})] }) }), _jsx(DetailRow, { label: t.linkedAccount, sublabel: connectedAccount?.user_identifier?.email ??
|
|
51
|
+
}, children: _jsx("div", { className: 'seam-detail-row-rotated-icon', children: _jsx(ChevronWideIcon, {}) }) }) })), _jsxs(DetailSection, { label: t.currentSettings, tooltipContent: t.currentSettingsTooltip, children: [_jsx(ClimateSettingRow, { device: device }), _jsx(FanModeRow, { device: device })] }), !disableClimateSettingSchedules && (_jsxs(DetailSection, { label: t.defaultSettings, tooltipContent: t.defaultSettingsTooltip, children: [_jsx(DetailRow, { label: t.defaultClimate, children: device.properties.default_climate_setting != null ? (_jsx(ClimateSettingStatus, { climateSetting: device.properties.default_climate_setting, temperatureUnit: 'fahrenheit', iconPlacement: 'right' })) : (_jsx("p", { children: t.none })) }), _jsx(ManualOverrideRow, { device: device })] })), _jsxs(DetailSection, { label: t.deviceDetails, children: [_jsx(DetailRow, { label: t.manufacturer, children: _jsxs("div", { className: 'seam-detail-row-hstack', children: [device.properties.model.manufacturer_display_name, device.properties.manufacturer === 'ecobee' && _jsx(BeeIcon, {})] }) }), _jsx(DetailRow, { label: t.linkedAccount, sublabel: connectedAccount?.user_identifier?.email ??
|
|
52
52
|
device.connected_account_id }), !disableResourceIds && (_jsx(DetailRow, { label: t.deviceId, sublabel: device.device_id }))] })] }) })] })] }));
|
|
53
53
|
}
|
|
54
54
|
function ManualOverrideRow({ device, }) {
|
|
@@ -151,7 +151,7 @@ function ClimateSettingRow({ device, }) {
|
|
|
151
151
|
}, [isHeatCoolSuccess, isHeatSuccess, isCoolSuccess, isSetOffSuccess]);
|
|
152
152
|
return (_jsxs(_Fragment, { children: [_jsx(AccordionRow, { label: t.climate, leftContent: _jsxs("div", { className: classNames('seam-thermostat-mutation-status', {
|
|
153
153
|
'is-visible': showSuccess,
|
|
154
|
-
}), children: [_jsx("div", { className: 'seam-thermostat-mutation-status-icon', children: _jsx(CheckBlackIcon, {}) }), _jsx("div", { className: 'seam-thermostat-mutation-status-label', children: t.saved })] }), rightCollapsedContent: _jsx(ClimateSettingStatus, { climateSetting: device.properties.current_climate_setting, temperatureUnit: 'fahrenheit' }), children: _jsxs("div", { className: 'seam-detail-row-end-alignment', children: [mode !== 'off' && (_jsx(TemperatureControlGroup, { mode: mode, heatValue: heatValue, coolValue: coolValue, onHeatValueChange: setHeatValue, onCoolValueChange: setCoolValue, delta: Number('min_heating_cooling_delta_fahrenheit' in device.properties &&
|
|
154
|
+
}), children: [_jsx("div", { className: 'seam-thermostat-mutation-status-icon', children: _jsx(CheckBlackIcon, {}) }), _jsx("div", { className: 'seam-thermostat-mutation-status-label', children: t.saved })] }), rightCollapsedContent: _jsx(ClimateSettingStatus, { climateSetting: device.properties.current_climate_setting, temperatureUnit: 'fahrenheit', iconPlacement: 'right' }), children: _jsxs("div", { className: 'seam-detail-row-end-alignment', children: [mode !== 'off' && (_jsx(TemperatureControlGroup, { mode: mode, heatValue: heatValue, coolValue: coolValue, onHeatValueChange: setHeatValue, onCoolValueChange: setCoolValue, delta: Number('min_heating_cooling_delta_fahrenheit' in device.properties &&
|
|
155
155
|
device.properties.min_heating_cooling_delta_fahrenheit) ?? 0 })), _jsx(ClimateModeMenu, { mode: mode, onChange: setMode, supportedModes: supportedModes })] }) }), _jsx(Snackbar, { message: t.climateSettingError, variant: 'error', visible: isHeatCoolError || isHeatError || isCoolError || isSetOffError, automaticVisibility: true })] }));
|
|
156
156
|
}
|
|
157
157
|
const t = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThermostatDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ThermostatDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx"],"names":[],"mappings":"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"}
|
package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import type { ClimateSettingScheduleUpdateRequest, ClimateSettingScheduleUpdateResponse, SeamError } from 'seamapi';
|
|
3
|
+
type UseUpdateClimateSettingScheduleData = ClimateSettingScheduleUpdateResponse['climate_setting_schedule'];
|
|
4
|
+
type UseUpdateClimateSettingScheduleMutationParams = ClimateSettingScheduleUpdateRequest;
|
|
5
|
+
export declare function useUpdateClimateSettingSchedule(): UseMutationResult<UseUpdateClimateSettingScheduleData, SeamError, UseUpdateClimateSettingScheduleMutationParams>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useMutation, useQueryClient, } from '@tanstack/react-query';
|
|
2
|
+
import { NullSeamClientError, useSeamClient } from '../../../../lib/index.js';
|
|
3
|
+
export function useUpdateClimateSettingSchedule() {
|
|
4
|
+
const { client } = useSeamClient();
|
|
5
|
+
const queryClient = useQueryClient();
|
|
6
|
+
return useMutation({
|
|
7
|
+
mutationFn: async (mutationPararms) => {
|
|
8
|
+
if (client === null)
|
|
9
|
+
throw new NullSeamClientError();
|
|
10
|
+
return await client.thermostats.climateSettingSchedules.update(mutationPararms);
|
|
11
|
+
},
|
|
12
|
+
onSuccess: (updated) => {
|
|
13
|
+
queryClient.setQueryData([
|
|
14
|
+
'thermostats',
|
|
15
|
+
'climate_setting_schedules',
|
|
16
|
+
'get',
|
|
17
|
+
{
|
|
18
|
+
climate_setting_schedule_id: updated.climate_setting_schedule_id,
|
|
19
|
+
},
|
|
20
|
+
], (climateSettingSchedule) => {
|
|
21
|
+
if (climateSettingSchedule == null) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
...climateSettingSchedule,
|
|
26
|
+
...updated,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
queryClient.setQueryData([
|
|
30
|
+
'thermostats',
|
|
31
|
+
'climate_setting_schedules',
|
|
32
|
+
'list',
|
|
33
|
+
{ device_id: updated.device_id },
|
|
34
|
+
], (climateSettingSchedules) => {
|
|
35
|
+
if (climateSettingSchedules == null) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
return climateSettingSchedules.map((climateSettingSchedule) => {
|
|
39
|
+
if (climateSettingSchedule.device_id === updated.device_id) {
|
|
40
|
+
return {
|
|
41
|
+
...climateSettingSchedule,
|
|
42
|
+
...updated,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return climateSettingSchedule;
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=use-update-climate-setting-schedule.js.map
|
package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-update-climate-setting-schedule.js","sourceRoot":"","sources":["../../../../src/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,cAAc,GACf,MAAM,uBAAuB,CAAA;AAS9B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAOjE,MAAM,UAAU,+BAA+B;IAK7C,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,OAAO,WAAW,CAIhB;QACA,UAAU,EAAE,KAAK,EACf,eAA8D,EAC9D,EAAE;YACF,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,mBAAmB,EAAE,CAAA;YACpD,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,MAAM,CAC5D,eAAe,CAChB,CAAA;QACH,CAAC;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,WAAW,CAAC,YAAY,CACtB;gBACE,aAAa;gBACb,2BAA2B;gBAC3B,KAAK;gBACL;oBACE,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;iBACjE;aACF,EACD,CAAC,sBAAsB,EAAE,EAAE;gBACzB,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;oBACnC,OAAM;gBACR,CAAC;gBAED,OAAO;oBACL,GAAG,sBAAsB;oBACzB,GAAG,OAAO;iBACX,CAAA;YACH,CAAC,CACF,CAAA;YAED,WAAW,CAAC,YAAY,CAGtB;gBACE,aAAa;gBACb,2BAA2B;gBAC3B,MAAM;gBACN,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;aACjC,EACD,CAAC,uBAAuB,EAA4B,EAAE;gBACpD,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;oBACpC,OAAO,EAAE,CAAA;gBACX,CAAC;gBAED,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE;oBAC5D,IAAI,sBAAsB,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC3D,OAAO;4BACL,GAAG,sBAAsB;4BACzB,GAAG,OAAO;yBACX,CAAA;oBACH,CAAC;oBAED,OAAO,sBAAsB,CAAA;gBAC/B,CAAC,CAAC,CAAA;YACJ,CAAC,CACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const seamapiReactVersion = "2.
|
|
1
|
+
declare const seamapiReactVersion = "2.12.1";
|
|
2
2
|
export default seamapiReactVersion;
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx
CHANGED
|
@@ -9,11 +9,14 @@ import {
|
|
|
9
9
|
} from 'lib/seam/components/common-props.js'
|
|
10
10
|
import { NestedDeviceDetails } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
|
|
11
11
|
import { useClimateSettingSchedule } from 'lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js'
|
|
12
|
+
import { useUpdateClimateSettingSchedule } from 'lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js'
|
|
12
13
|
import { useComponentTelemetry } from 'lib/telemetry/index.js'
|
|
13
14
|
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
|
|
14
15
|
import { DetailRow } from 'lib/ui/layout/DetailRow.js'
|
|
15
16
|
import { DetailSection } from 'lib/ui/layout/DetailSection.js'
|
|
16
17
|
import { DetailSectionGroup } from 'lib/ui/layout/DetailSectionGroup.js'
|
|
18
|
+
import { Snackbar } from 'lib/ui/Snackbar/Snackbar.js'
|
|
19
|
+
import { Switch } from 'lib/ui/Switch/Switch.js'
|
|
17
20
|
import { ClimateSettingStatus } from 'lib/ui/thermostat/ClimateSettingStatus.js'
|
|
18
21
|
|
|
19
22
|
import { formatDateTime } from './dates.js'
|
|
@@ -45,6 +48,8 @@ export function ClimateSettingScheduleDetails({
|
|
|
45
48
|
climateSettingScheduleId
|
|
46
49
|
)
|
|
47
50
|
|
|
51
|
+
const { mutate, isSuccess, isError } = useUpdateClimateSettingSchedule()
|
|
52
|
+
|
|
48
53
|
const [selectedDeviceId, selectDevice] = useState<string | null>(null)
|
|
49
54
|
|
|
50
55
|
if (climateSettingSchedule == null) {
|
|
@@ -75,55 +80,82 @@ export function ClimateSettingScheduleDetails({
|
|
|
75
80
|
}
|
|
76
81
|
|
|
77
82
|
return (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
83
|
+
<>
|
|
84
|
+
<div
|
|
85
|
+
className={classNames(
|
|
86
|
+
'seam-climate-setting-schedule-details',
|
|
87
|
+
className
|
|
88
|
+
)}
|
|
89
|
+
>
|
|
90
|
+
<ContentHeader title={t.climateSettingSchedule} onBack={onBack} />
|
|
91
|
+
<div className='seam-climate-setting-schedule-details-content'>
|
|
92
|
+
<ClimateSettingScheduleCard
|
|
93
|
+
climateSettingScheduleId={climateSettingScheduleId}
|
|
94
|
+
onSelectDevice={selectDevice}
|
|
95
|
+
/>
|
|
96
|
+
<div className='seam-default-setting-message-container'>
|
|
97
|
+
<span className='seam-default-setting-message'>
|
|
98
|
+
{t.defaultSettingMessagePart1}{' '}
|
|
99
|
+
<span className='seam-default-setting-text'>
|
|
100
|
+
{t.defaultSetting}
|
|
101
|
+
</span>{' '}
|
|
102
|
+
{t.defaultSettingMessagePart2}
|
|
103
|
+
</span>
|
|
104
|
+
</div>
|
|
105
|
+
<DetailSectionGroup>
|
|
106
|
+
<DetailSection>
|
|
107
|
+
<DetailRow label={t.startEndTime}>
|
|
108
|
+
<span className='seam-climate-setting-details-value seam-climate-setting-details-schedule-range'>
|
|
109
|
+
{formatDateTime(climateSettingSchedule.schedule_starts_at)}
|
|
110
|
+
<ArrowRightIcon />
|
|
111
|
+
{formatDateTime(climateSettingSchedule.schedule_ends_at)}
|
|
112
|
+
</span>
|
|
113
|
+
</DetailRow>
|
|
114
|
+
<DetailRow label={t.climateSetting}>
|
|
115
|
+
<ClimateSettingStatus
|
|
116
|
+
climateSetting={climateSettingSchedule}
|
|
117
|
+
iconPlacement='right'
|
|
118
|
+
/>
|
|
119
|
+
</DetailRow>
|
|
120
|
+
<DetailRow label={t.allowManualOverride}>
|
|
121
|
+
<span className='seam-climate-setting-details-value'>
|
|
122
|
+
<Switch
|
|
123
|
+
checked={isManualOverrideAllowed}
|
|
124
|
+
onChange={(checked) => {
|
|
125
|
+
mutate({
|
|
126
|
+
climate_setting_schedule_id:
|
|
127
|
+
climateSettingSchedule.climate_setting_schedule_id,
|
|
128
|
+
manual_override_allowed: checked,
|
|
129
|
+
})
|
|
130
|
+
}}
|
|
131
|
+
/>
|
|
132
|
+
</span>
|
|
133
|
+
</DetailRow>
|
|
134
|
+
</DetailSection>
|
|
135
|
+
<DetailSection>
|
|
136
|
+
<DetailRow label={t.creationDate}>
|
|
137
|
+
<div className='seam-creation-date'>
|
|
138
|
+
{formatDateTime(climateSettingSchedule.created_at)}
|
|
139
|
+
</div>
|
|
140
|
+
</DetailRow>
|
|
141
|
+
</DetailSection>
|
|
142
|
+
</DetailSectionGroup>
|
|
95
143
|
</div>
|
|
96
|
-
<DetailSectionGroup>
|
|
97
|
-
<DetailSection>
|
|
98
|
-
<DetailRow label={t.startEndTime}>
|
|
99
|
-
<span className='seam-climate-setting-details-value seam-climate-setting-details-schedule-range'>
|
|
100
|
-
{formatDateTime(climateSettingSchedule.schedule_starts_at)}
|
|
101
|
-
<ArrowRightIcon />
|
|
102
|
-
{formatDateTime(climateSettingSchedule.schedule_ends_at)}
|
|
103
|
-
</span>
|
|
104
|
-
</DetailRow>
|
|
105
|
-
<DetailRow label={t.climateSetting}>
|
|
106
|
-
<ClimateSettingStatus
|
|
107
|
-
climateSetting={climateSettingSchedule}
|
|
108
|
-
iconPlacement='right'
|
|
109
|
-
/>
|
|
110
|
-
</DetailRow>
|
|
111
|
-
<DetailRow label={t.allowManualOverride}>
|
|
112
|
-
<span className='seam-climate-setting-details-value'>
|
|
113
|
-
{isManualOverrideAllowed ? t.on : t.off}
|
|
114
|
-
</span>
|
|
115
|
-
</DetailRow>
|
|
116
|
-
</DetailSection>
|
|
117
|
-
<DetailSection>
|
|
118
|
-
<DetailRow label={t.creationDate}>
|
|
119
|
-
<div className='seam-creation-date'>
|
|
120
|
-
{formatDateTime(climateSettingSchedule.created_at)}
|
|
121
|
-
</div>
|
|
122
|
-
</DetailRow>
|
|
123
|
-
</DetailSection>
|
|
124
|
-
</DetailSectionGroup>
|
|
125
144
|
</div>
|
|
126
|
-
|
|
145
|
+
<Snackbar
|
|
146
|
+
message={t.manualOverrideSuccess}
|
|
147
|
+
variant='success'
|
|
148
|
+
visible={isSuccess}
|
|
149
|
+
automaticVisibility
|
|
150
|
+
/>
|
|
151
|
+
|
|
152
|
+
<Snackbar
|
|
153
|
+
message={t.manualOverrideError}
|
|
154
|
+
variant='error'
|
|
155
|
+
visible={isError}
|
|
156
|
+
automaticVisibility
|
|
157
|
+
/>
|
|
158
|
+
</>
|
|
127
159
|
)
|
|
128
160
|
}
|
|
129
161
|
|
|
@@ -136,6 +168,6 @@ const t = {
|
|
|
136
168
|
defaultSettingMessagePart1: 'Thermostat will return to its',
|
|
137
169
|
defaultSetting: 'default setting',
|
|
138
170
|
defaultSettingMessagePart2: 'at end time.',
|
|
139
|
-
|
|
140
|
-
|
|
171
|
+
manualOverrideSuccess: 'Successfully updated manual override!',
|
|
172
|
+
manualOverrideError: 'Error updating manual override. Please try again.',
|
|
141
173
|
}
|
|
@@ -133,6 +133,7 @@ export function ThermostatDeviceDetails({
|
|
|
133
133
|
<ClimateSettingStatus
|
|
134
134
|
climateSetting={device.properties.default_climate_setting}
|
|
135
135
|
temperatureUnit='fahrenheit'
|
|
136
|
+
iconPlacement='right'
|
|
136
137
|
/>
|
|
137
138
|
) : (
|
|
138
139
|
<p>{t.none}</p>
|
|
@@ -397,6 +398,7 @@ function ClimateSettingRow({
|
|
|
397
398
|
<ClimateSettingStatus
|
|
398
399
|
climateSetting={device.properties.current_climate_setting}
|
|
399
400
|
temperatureUnit='fahrenheit'
|
|
401
|
+
iconPlacement='right'
|
|
400
402
|
/>
|
|
401
403
|
}
|
|
402
404
|
>
|
package/src/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useMutation,
|
|
3
|
+
type UseMutationResult,
|
|
4
|
+
useQueryClient,
|
|
5
|
+
} from '@tanstack/react-query'
|
|
6
|
+
import type {
|
|
7
|
+
ClimateSettingSchedule,
|
|
8
|
+
ClimateSettingSchedulesListResponse,
|
|
9
|
+
ClimateSettingScheduleUpdateRequest,
|
|
10
|
+
ClimateSettingScheduleUpdateResponse,
|
|
11
|
+
SeamError,
|
|
12
|
+
} from 'seamapi'
|
|
13
|
+
|
|
14
|
+
import { NullSeamClientError, useSeamClient } from 'lib/index.js'
|
|
15
|
+
|
|
16
|
+
type UseUpdateClimateSettingScheduleData =
|
|
17
|
+
ClimateSettingScheduleUpdateResponse['climate_setting_schedule']
|
|
18
|
+
type UseUpdateClimateSettingScheduleMutationParams =
|
|
19
|
+
ClimateSettingScheduleUpdateRequest
|
|
20
|
+
|
|
21
|
+
export function useUpdateClimateSettingSchedule(): UseMutationResult<
|
|
22
|
+
UseUpdateClimateSettingScheduleData,
|
|
23
|
+
SeamError,
|
|
24
|
+
UseUpdateClimateSettingScheduleMutationParams
|
|
25
|
+
> {
|
|
26
|
+
const { client } = useSeamClient()
|
|
27
|
+
const queryClient = useQueryClient()
|
|
28
|
+
|
|
29
|
+
return useMutation<
|
|
30
|
+
UseUpdateClimateSettingScheduleData,
|
|
31
|
+
SeamError,
|
|
32
|
+
UseUpdateClimateSettingScheduleMutationParams
|
|
33
|
+
>({
|
|
34
|
+
mutationFn: async (
|
|
35
|
+
mutationPararms: UseUpdateClimateSettingScheduleMutationParams
|
|
36
|
+
) => {
|
|
37
|
+
if (client === null) throw new NullSeamClientError()
|
|
38
|
+
return await client.thermostats.climateSettingSchedules.update(
|
|
39
|
+
mutationPararms
|
|
40
|
+
)
|
|
41
|
+
},
|
|
42
|
+
onSuccess: (updated) => {
|
|
43
|
+
queryClient.setQueryData<ClimateSettingSchedule>(
|
|
44
|
+
[
|
|
45
|
+
'thermostats',
|
|
46
|
+
'climate_setting_schedules',
|
|
47
|
+
'get',
|
|
48
|
+
{
|
|
49
|
+
climate_setting_schedule_id: updated.climate_setting_schedule_id,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
(climateSettingSchedule) => {
|
|
53
|
+
if (climateSettingSchedule == null) {
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
...climateSettingSchedule,
|
|
59
|
+
...updated,
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
queryClient.setQueryData<
|
|
65
|
+
ClimateSettingSchedulesListResponse['climate_setting_schedules']
|
|
66
|
+
>(
|
|
67
|
+
[
|
|
68
|
+
'thermostats',
|
|
69
|
+
'climate_setting_schedules',
|
|
70
|
+
'list',
|
|
71
|
+
{ device_id: updated.device_id },
|
|
72
|
+
],
|
|
73
|
+
(climateSettingSchedules): ClimateSettingSchedule[] => {
|
|
74
|
+
if (climateSettingSchedules == null) {
|
|
75
|
+
return []
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return climateSettingSchedules.map((climateSettingSchedule) => {
|
|
79
|
+
if (climateSettingSchedule.device_id === updated.device_id) {
|
|
80
|
+
return {
|
|
81
|
+
...climateSettingSchedule,
|
|
82
|
+
...updated,
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return climateSettingSchedule
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
}
|
package/src/lib/version.ts
CHANGED