@seamapi/react 4.7.0 → 4.8.0

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.
@@ -0,0 +1 @@
1
+ export declare function getErrorMessage(error?: Error | null | undefined): string;
package/lib/errors.js ADDED
@@ -0,0 +1,11 @@
1
+ import { isSeamHttpApiError } from '@seamapi/http/connect';
2
+ export function getErrorMessage(error) {
3
+ if (isSeamHttpApiError(error)) {
4
+ return error.message;
5
+ }
6
+ return t.anUnknownErrorOccurred;
7
+ }
8
+ const t = {
9
+ anUnknownErrorOccurred: 'An unknown error occurred',
10
+ };
11
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC9D,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAA;IACtB,CAAC;IAED,OAAO,CAAC,CAAC,sBAAsB,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,GAAG;IACR,sBAAsB,EAAE,2BAA2B;CACpD,CAAA"}
@@ -1,2 +1,2 @@
1
- export const isThermostatDevice = (device) => 'is_fan_running' in device.properties;
1
+ export const isThermostatDevice = (device) => 'available_climate_presets' in device.properties;
2
2
  //# sourceMappingURL=thermostat-device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thermostat-device.js","sourceRoot":"","sources":["../../../src/lib/seam/thermostats/thermostat-device.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAc,EACc,EAAE,CAAC,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAA"}
1
+ {"version":3,"file":"thermostat-device.js","sourceRoot":"","sources":["../../../src/lib/seam/thermostats/thermostat-device.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAc,EACc,EAAE,CAC9B,2BAA2B,IAAI,MAAM,CAAC,UAAU,CAAA"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import classNames from 'classnames';
3
3
  import { useCallback, useImperativeHandle, useMemo, } from 'react';
4
4
  import { Controller, useForm } from 'react-hook-form';
5
+ import { getErrorMessage } from '../../../lib/errors.js';
5
6
  import { fahrenheitToCelsius } from '../../../lib/seam/thermostats/unit-conversion.js';
6
7
  import { useCreateThermostatClimatePreset } from '../../../lib/seam/thermostats/use-create-thermostat-climate-preset.js';
7
8
  import { useUpdateThermostatClimatePreset } from '../../../lib/seam/thermostats/use-update-thermostat-climate-preset.js';
@@ -9,6 +10,7 @@ import { Button } from '../../../lib/ui/Button.js';
9
10
  import { FormField } from '../../../lib/ui/FormField.js';
10
11
  import { InputLabel } from '../../../lib/ui/InputLabel.js';
11
12
  import { ContentHeader } from '../../../lib/ui/layout/ContentHeader.js';
13
+ import { Snackbar } from '../../../lib/ui/Snackbar/Snackbar.js';
12
14
  import { TextField } from '../../../lib/ui/TextField/TextField.js';
13
15
  import { ClimateModeMenu } from '../../../lib/ui/thermostat/ClimateModeMenu.js';
14
16
  import { FanModeMenu } from '../../../lib/ui/thermostat/FanModeMenu.js';
@@ -79,9 +81,10 @@ function PresetForm(props) {
79
81
  }, heatValue: state.heatPoint ?? 0, coolValue: state.coolPoint ?? 0, minHeat: device.properties.min_heating_cooling_delta_fahrenheit, maxHeat: device.properties.max_heating_set_point_fahrenheit, minCool: device.properties.min_cooling_set_point_fahrenheit, maxCool: device.properties.max_cooling_set_point_fahrenheit, delta: device.properties.min_heating_cooling_delta_fahrenheit })] })), _jsx("div", { className: 'seam-climate-preset-buttons', children: _jsx(Button, { type: 'submit', variant: 'solid', disabled: loading, loading: loading, children: t.save }) })] }) }));
80
82
  }
81
83
  function CreateForm({ device, onComplete }) {
82
- const mutation = useCreateThermostatClimatePreset();
84
+ const { mutate, isError, error, isPending } = useCreateThermostatClimatePreset();
85
+ const errorMessage = getErrorMessage(error);
83
86
  const onSubmit = useCallback((values) => {
84
- mutation.mutate({
87
+ mutate({
85
88
  climate_preset_key: values.key,
86
89
  device_id: device.device_id,
87
90
  name: values.name === '' ? undefined : values.name,
@@ -92,28 +95,28 @@ function CreateForm({ device, onComplete }) {
92
95
  heating_set_point_celsius: fahrenheitToCelsius(values.heatPoint),
93
96
  hvac_mode_setting: values.hvacMode,
94
97
  }, { onSuccess: onComplete });
95
- }, [device, mutation, onComplete]);
96
- return (_jsx(PresetForm, { defaultValues: {
97
- key: '',
98
- coolPoint: 60,
99
- heatPoint: 80,
100
- name: '',
101
- hvacMode: 'off',
102
- fanMode: 'auto',
103
- }, device: device, loading: mutation.isPending, onSubmit: onSubmit, withKeyField: true }));
98
+ }, [device, mutate, onComplete]);
99
+ return (_jsxs(_Fragment, { children: [_jsx(Snackbar, { message: errorMessage, variant: 'error', visible: isError, automaticVisibility: true }), _jsx(PresetForm, { defaultValues: {
100
+ key: '',
101
+ coolPoint: 60,
102
+ heatPoint: 80,
103
+ name: '',
104
+ hvacMode: 'off',
105
+ fanMode: 'auto',
106
+ }, device: device, loading: isPending, onSubmit: onSubmit, withKeyField: true })] }));
104
107
  }
105
108
  function UpdateForm({ device, onComplete, preset, }) {
106
- const mutation = useUpdateThermostatClimatePreset();
109
+ const { mutate, isError, error, isPending } = useUpdateThermostatClimatePreset();
107
110
  const defaultValues = useMemo(() => ({
108
- coolPoint: preset.cooling_set_point_fahrenheit ?? 60,
109
- heatPoint: preset.heating_set_point_fahrenheit ?? 80,
111
+ coolPoint: preset.cooling_set_point_fahrenheit,
112
+ heatPoint: preset.heating_set_point_fahrenheit,
110
113
  name: preset.display_name,
111
114
  hvacMode: preset.hvac_mode_setting,
112
115
  fanMode: preset.fan_mode_setting,
113
116
  key: preset.climate_preset_key,
114
117
  }), [preset]);
115
118
  const onSubmit = useCallback((values) => {
116
- mutation.mutate({
119
+ mutate({
117
120
  climate_preset_key: values.key,
118
121
  device_id: device.device_id,
119
122
  name: values.name === '' ? undefined : values.name,
@@ -124,8 +127,9 @@ function UpdateForm({ device, onComplete, preset, }) {
124
127
  heating_set_point_celsius: fahrenheitToCelsius(values.heatPoint),
125
128
  hvac_mode_setting: values.hvacMode,
126
129
  }, { onSuccess: onComplete });
127
- }, [device, mutation, onComplete]);
128
- return (_jsx(PresetForm, { defaultValues: defaultValues, device: device, loading: mutation.isPending, onSubmit: onSubmit }));
130
+ }, [device, mutate, onComplete]);
131
+ const errorMessage = getErrorMessage(error);
132
+ return (_jsxs(_Fragment, { children: [_jsx(Snackbar, { message: errorMessage, variant: 'error', visible: isError, automaticVisibility: true }), _jsx(PresetForm, { defaultValues: defaultValues, device: device, loading: isPending, onSubmit: onSubmit })] }));
129
133
  }
130
134
  const t = {
131
135
  keyAlreadyExists: 'Climate Preset with this key already exists.',
@@ -137,5 +141,6 @@ const t = {
137
141
  delete: 'Delete',
138
142
  save: 'Save',
139
143
  crateNewPreset: 'Create New Climate Preset',
144
+ unknownErrorOccured: 'An unknown error occurred.',
140
145
  };
141
146
  //# sourceMappingURL=ClimatePreset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClimatePreset.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ClimatePreset.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClimatePreset.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ClimatePreset.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
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
+ import { getErrorMessage } from '../../../lib/errors.js';
4
5
  import { AddIcon } from '../../../lib/icons/Add.js';
5
6
  import { EditIcon } from '../../../lib/icons/Edit.js';
6
7
  import { FanIcon } from '../../../lib/icons/Fan.js';
@@ -14,6 +15,7 @@ import { IconButton } from '../../../lib/ui/IconButton.js';
14
15
  import { ContentHeader } from '../../../lib/ui/layout/ContentHeader.js';
15
16
  import { Popover } from '../../../lib/ui/Popover/Popover.js';
16
17
  import { PopoverContentPrompt } from '../../../lib/ui/Popover/PopoverContentPrompt.js';
18
+ import { Snackbar } from '../../../lib/ui/Snackbar/Snackbar.js';
17
19
  import { Spinner } from '../../../lib/ui/Spinner/Spinner.js';
18
20
  import { ClimatePreset } from '../../../lib/ui/thermostat/ClimatePreset.js';
19
21
  const CreateNewPresetSymbol = Symbol('CreateNewPreset');
@@ -21,7 +23,8 @@ export function ClimatePresets(props) {
21
23
  const { device, onBack } = props;
22
24
  const [selectedClimatePreset, setSelectedClimatePreset] = useState(null);
23
25
  const [climatePresetKeySelectedForDeletion, setClimatePresetKeySelectedForDeletion,] = useState(null);
24
- const deleteMutation = useDeleteThermostatClimatePreset();
26
+ const { mutate, isError, error, isPending } = useDeleteThermostatClimatePreset();
27
+ const errorMessage = getErrorMessage(error);
25
28
  if (selectedClimatePreset != null ||
26
29
  selectedClimatePreset === CreateNewPresetSymbol) {
27
30
  return (_jsx(ClimatePreset, { onBack: () => {
@@ -30,21 +33,21 @@ export function ClimatePresets(props) {
30
33
  ? undefined
31
34
  : selectedClimatePreset }));
32
35
  }
33
- return (_jsxs("div", { className: 'seam-thermostat-climate-presets', children: [_jsx(ContentHeader, { title: t.title, onBack: onBack }), _jsxs("div", { className: 'seam-thermostat-climate-presets-body', children: [_jsxs(Button, { onClick: () => {
34
- setSelectedClimatePreset(CreateNewPresetSymbol);
35
- }, className: 'seam-climate-presets-add-button', children: [_jsx(AddIcon, {}), t.createNew] }), _jsx("div", { className: 'seam-thermostat-climate-presets-cards', children: device.properties.available_climate_presets.map((preset) => (_jsx(PresetCard, { onClickEdit: () => {
36
- setSelectedClimatePreset(preset);
37
- }, onClickDelete: () => {
38
- setClimatePresetKeySelectedForDeletion(preset.climate_preset_key);
39
- deleteMutation.mutate({
40
- climate_preset_key: preset.climate_preset_key,
41
- device_id: device.device_id,
42
- });
43
- }, temperatureUnit: props.temperatureUnit, preset: preset, deletionLoading: deleteMutation.isPending &&
44
- climatePresetKeySelectedForDeletion ===
45
- preset.climate_preset_key, disabled: deleteMutation.isPending &&
46
- climatePresetKeySelectedForDeletion !==
47
- preset.climate_preset_key }, preset.climate_preset_key))) })] })] }));
36
+ return (_jsxs(_Fragment, { children: [_jsx(Snackbar, { message: errorMessage, variant: 'error', visible: isError, automaticVisibility: true }), _jsxs("div", { className: 'seam-thermostat-climate-presets', children: [_jsx(ContentHeader, { title: t.title, onBack: onBack }), _jsxs("div", { className: 'seam-thermostat-climate-presets-body', children: [_jsxs(Button, { onClick: () => {
37
+ setSelectedClimatePreset(CreateNewPresetSymbol);
38
+ }, className: 'seam-climate-presets-add-button', children: [_jsx(AddIcon, {}), t.createNew] }), _jsx("div", { className: 'seam-thermostat-climate-presets-cards', children: device.properties.available_climate_presets.map((preset) => (_jsx(PresetCard, { onClickEdit: () => {
39
+ setSelectedClimatePreset(preset);
40
+ }, onClickDelete: () => {
41
+ setClimatePresetKeySelectedForDeletion(preset.climate_preset_key);
42
+ mutate({
43
+ climate_preset_key: preset.climate_preset_key,
44
+ device_id: device.device_id,
45
+ });
46
+ }, temperatureUnit: props.temperatureUnit, preset: preset, deletionLoading: isPending &&
47
+ climatePresetKeySelectedForDeletion ===
48
+ preset.climate_preset_key, disabled: isPending &&
49
+ climatePresetKeySelectedForDeletion !==
50
+ preset.climate_preset_key }, preset.climate_preset_key))) })] })] })] }));
48
51
  }
49
52
  function PresetCard(props) {
50
53
  const { preset, temperatureUnit, onClickEdit, onClickDelete, deletionLoading = false, disabled = false, ...attrs } = props;
@@ -68,5 +71,6 @@ const t = {
68
71
  createNew: 'Create New',
69
72
  delete: 'Delete',
70
73
  edit: 'Edit',
74
+ climatePresetNotFound: 'Climate Preset not found.',
71
75
  };
72
76
  //# sourceMappingURL=ClimatePresets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClimatePresets.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ClimatePresets.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAuC,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAK9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,gCAAgC,EAAE,MAAM,8DAA8D,CAAA;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAQlE,MAAM,qBAAqB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAEvD,MAAM,UAAU,cAAc,CAAC,KAA+B;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAEhC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAEhE,IAAI,CAAC,CAAA;IAEP,MAAM,CACJ,mCAAmC,EACnC,sCAAsC,EACvC,GAAG,QAAQ,CAAuD,IAAI,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,gCAAgC,EAAE,CAAA;IAEzD,IACE,qBAAqB,IAAI,IAAI;QAC7B,qBAAqB,KAAK,qBAAqB,EAC/C,CAAC;QACD,OAAO,CACL,KAAC,aAAa,IACZ,MAAM,EAAE,GAAG,EAAE;gBACX,wBAAwB,CAAC,IAAI,CAAC,CAAA;YAChC,CAAC,EACD,MAAM,EAAE,MAAM,EACd,MAAM,EACJ,qBAAqB,KAAK,qBAAqB;gBAC7C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,qBAAqB,GAE3B,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,KAAC,aAAa,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,EACjD,eAAK,SAAS,EAAC,sCAAsC,aACnD,MAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;4BACZ,wBAAwB,CAAC,qBAAqB,CAAC,CAAA;wBACjD,CAAC,EACD,SAAS,EAAC,iCAAiC,aAE3C,KAAC,OAAO,KAAG,EACV,CAAC,CAAC,SAAS,IACL,EAET,cAAK,SAAS,EAAC,uCAAuC,YACnD,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC3D,KAAC,UAAU,IACT,WAAW,EAAE,GAAG,EAAE;gCAChB,wBAAwB,CAAC,MAAM,CAAC,CAAA;4BAClC,CAAC,EACD,aAAa,EAAE,GAAG,EAAE;gCAClB,sCAAsC,CACpC,MAAM,CAAC,kBAAkB,CAC1B,CAAA;gCACD,cAAc,CAAC,MAAM,CAAC;oCACpB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oCAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;iCAC5B,CAAC,CAAA;4BACJ,CAAC,EACD,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,MAAM,EAAE,MAAM,EAEd,eAAe,EACb,cAAc,CAAC,SAAS;gCACxB,mCAAmC;oCACjC,MAAM,CAAC,kBAAkB,EAE7B,QAAQ,EACN,cAAc,CAAC,SAAS;gCACxB,mCAAmC;oCACjC,MAAM,CAAC,kBAAkB,IATxB,MAAM,CAAC,kBAAkB,CAW9B,CACH,CAAC,GACE,IACF,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CACjB,KAOC;IAED,MAAM,EACJ,MAAM,EACN,eAAe,EACf,WAAW,EACX,aAAa,EACb,eAAe,GAAG,KAAK,EACvB,QAAQ,GAAG,KAAK,EAChB,GAAG,KAAK,EACT,GAAG,KAAK,CAAA;IAET,MAAM,SAAS,GACb,eAAe,KAAK,YAAY;QAC9B,CAAC,CAAC,MAAM,CAAC,4BAA4B;QACrC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,IAAI,SAAS,CAAC,CAAA;IAErD,MAAM,SAAS,GACb,eAAe,KAAK,YAAY;QAC9B,CAAC,CAAC,MAAM,CAAC,4BAA4B;QACrC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,IAAI,SAAS,CAAC,CAAA;IAErD,MAAM,UAAU,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAA;IAE5D,OAAO,CACL,kBACM,KAAK,EACT,SAAS,EAAE,UAAU,CACnB,sCAAsC,EACtC,KAAK,CAAC,SAAS,CAChB,aAED,eAAK,SAAS,EAAC,0CAA0C,aACvD,eAAK,SAAS,EAAC,2CAA2C,aACvD,MAAM,CAAC,YAAY,EAEnB,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,CACtB,cAAK,SAAS,EAAC,+CAA+C,YAC3D,MAAM,CAAC,kBAAkB,GACtB,CACP,IACG,EAEN,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,UAAU,IACT,QAAQ,EAAE,QAAQ,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,EACzD,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,CAAC,CAAC,IAAI,YAEb,KAAC,QAAQ,KAAG,GACD,EAEb,KAAC,OAAO,IACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,oBAAoB,IACnB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,GAAG,EAAE;wCACd,aAAa,EAAE,CAAA;wCACf,IAAI,EAAE,CAAA;oCACR,CAAC,GACD,CACH,YAEA,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACf,KAAC,UAAU,IACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EACxC,KAAK,EAAE,CAAC,CAAC,MAAM,YAEd,eAAe,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,GAChD,CACd,GACO,IACN,IACF,EAEN,eAAK,SAAS,EAAC,2CAA2C,aACvD,SAAS,IAAI,IAAI,IAAI,CACpB,KAAC,IAAI,IACH,IAAI,EAAE,KAAC,kBAAkB,KAAG,EAC5B,IAAI,EAAE,GAAG,SAAS,IAAI,UAAU,EAAE,GAClC,CACH,EAEA,SAAS,IAAI,IAAI,IAAI,CACpB,KAAC,IAAI,IACH,IAAI,EAAE,KAAC,kBAAkB,KAAG,EAC5B,IAAI,EAAE,GAAG,SAAS,IAAI,UAAU,EAAE,GAClC,CACH,EAEA,MAAM,CAAC,gBAAgB,IAAI,IAAI,IAAI,CAClC,KAAC,IAAI,IAAC,IAAI,EAAE,KAAC,OAAO,KAAG,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,GAAI,CAC3D,IACG,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAqC;IAC7D,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAM,SAAS,EAAC,0CAA0C,YAAE,IAAI,GAAQ,EACxE,eAAM,SAAS,EAAC,2CAA2C,YAAE,IAAI,GAAQ,IACrE,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAA"}
1
+ {"version":3,"file":"ClimatePresets.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ClimatePresets.tsx"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiReactVersion = "4.7.0";
1
+ declare const seamapiReactVersion = "4.8.0";
2
2
  export default seamapiReactVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '4.7.0';
1
+ const seamapiReactVersion = '4.8.0';
2
2
  export default seamapiReactVersion;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/react",
3
- "version": "4.7.0",
3
+ "version": "4.8.0",
4
4
  "description": "Seam Components.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -0,0 +1,13 @@
1
+ import { isSeamHttpApiError } from '@seamapi/http/connect'
2
+
3
+ export function getErrorMessage(error?: Error | null | undefined): string {
4
+ if (isSeamHttpApiError(error)) {
5
+ return error.message
6
+ }
7
+
8
+ return t.anUnknownErrorOccurred
9
+ }
10
+
11
+ const t = {
12
+ anUnknownErrorOccurred: 'An unknown error occurred',
13
+ }
@@ -36,7 +36,8 @@ export interface ClimateSetting {
36
36
 
37
37
  export const isThermostatDevice = (
38
38
  device: Device
39
- ): device is ThermostatDevice => 'is_fan_running' in device.properties
39
+ ): device is ThermostatDevice =>
40
+ 'available_climate_presets' in device.properties
40
41
 
41
42
  export type ThermostatClimatePreset =
42
43
  ThermostatDevice['properties']['available_climate_presets'][number]
@@ -8,6 +8,7 @@ import {
8
8
  } from 'react'
9
9
  import { Controller, useForm, type UseFormReturn } from 'react-hook-form'
10
10
 
11
+ import { getErrorMessage } from 'lib/errors.js'
11
12
  import type {
12
13
  FanModeSetting,
13
14
  HvacModeSetting,
@@ -21,6 +22,7 @@ import { Button } from 'lib/ui/Button.js'
21
22
  import { FormField } from 'lib/ui/FormField.js'
22
23
  import { InputLabel } from 'lib/ui/InputLabel.js'
23
24
  import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
25
+ import { Snackbar } from 'lib/ui/Snackbar/Snackbar.js'
24
26
  import { TextField } from 'lib/ui/TextField/TextField.js'
25
27
  import { ClimateModeMenu } from 'lib/ui/thermostat/ClimateModeMenu.js'
26
28
  import { FanModeMenu } from 'lib/ui/thermostat/FanModeMenu.js'
@@ -266,11 +268,14 @@ interface CreateFormProps {
266
268
  }
267
269
 
268
270
  function CreateForm({ device, onComplete }: CreateFormProps): JSX.Element {
269
- const mutation = useCreateThermostatClimatePreset()
271
+ const { mutate, isError, error, isPending } =
272
+ useCreateThermostatClimatePreset()
273
+
274
+ const errorMessage = getErrorMessage(error)
270
275
 
271
276
  const onSubmit = useCallback(
272
277
  (values: PresetFormProps['defaultValues']) => {
273
- mutation.mutate(
278
+ mutate(
274
279
  {
275
280
  climate_preset_key: values.key,
276
281
  device_id: device.device_id,
@@ -285,24 +290,33 @@ function CreateForm({ device, onComplete }: CreateFormProps): JSX.Element {
285
290
  { onSuccess: onComplete }
286
291
  )
287
292
  },
288
- [device, mutation, onComplete]
293
+ [device, mutate, onComplete]
289
294
  )
290
295
 
291
296
  return (
292
- <PresetForm
293
- defaultValues={{
294
- key: '',
295
- coolPoint: 60,
296
- heatPoint: 80,
297
- name: '',
298
- hvacMode: 'off',
299
- fanMode: 'auto',
300
- }}
301
- device={device}
302
- loading={mutation.isPending}
303
- onSubmit={onSubmit}
304
- withKeyField
305
- />
297
+ <>
298
+ <Snackbar
299
+ message={errorMessage}
300
+ variant='error'
301
+ visible={isError}
302
+ automaticVisibility
303
+ />
304
+
305
+ <PresetForm
306
+ defaultValues={{
307
+ key: '',
308
+ coolPoint: 60,
309
+ heatPoint: 80,
310
+ name: '',
311
+ hvacMode: 'off',
312
+ fanMode: 'auto',
313
+ }}
314
+ device={device}
315
+ loading={isPending}
316
+ onSubmit={onSubmit}
317
+ withKeyField
318
+ />
319
+ </>
306
320
  )
307
321
  }
308
322
 
@@ -317,11 +331,13 @@ function UpdateForm({
317
331
  onComplete,
318
332
  preset,
319
333
  }: UpdateFormProps): JSX.Element {
320
- const mutation = useUpdateThermostatClimatePreset()
334
+ const { mutate, isError, error, isPending } =
335
+ useUpdateThermostatClimatePreset()
336
+
321
337
  const defaultValues = useMemo<PresetFormProps['defaultValues']>(
322
338
  () => ({
323
- coolPoint: preset.cooling_set_point_fahrenheit ?? 60,
324
- heatPoint: preset.heating_set_point_fahrenheit ?? 80,
339
+ coolPoint: preset.cooling_set_point_fahrenheit,
340
+ heatPoint: preset.heating_set_point_fahrenheit,
325
341
  name: preset.display_name,
326
342
  hvacMode: preset.hvac_mode_setting,
327
343
  fanMode: preset.fan_mode_setting,
@@ -332,7 +348,7 @@ function UpdateForm({
332
348
 
333
349
  const onSubmit = useCallback(
334
350
  (values: PresetFormProps['defaultValues']) => {
335
- mutation.mutate(
351
+ mutate(
336
352
  {
337
353
  climate_preset_key: values.key,
338
354
  device_id: device.device_id,
@@ -347,16 +363,27 @@ function UpdateForm({
347
363
  { onSuccess: onComplete }
348
364
  )
349
365
  },
350
- [device, mutation, onComplete]
366
+ [device, mutate, onComplete]
351
367
  )
352
368
 
369
+ const errorMessage = getErrorMessage(error)
370
+
353
371
  return (
354
- <PresetForm
355
- defaultValues={defaultValues}
356
- device={device}
357
- loading={mutation.isPending}
358
- onSubmit={onSubmit}
359
- />
372
+ <>
373
+ <Snackbar
374
+ message={errorMessage}
375
+ variant='error'
376
+ visible={isError}
377
+ automaticVisibility
378
+ />
379
+
380
+ <PresetForm
381
+ defaultValues={defaultValues}
382
+ device={device}
383
+ loading={isPending}
384
+ onSubmit={onSubmit}
385
+ />
386
+ </>
360
387
  )
361
388
  }
362
389
 
@@ -370,4 +397,5 @@ const t = {
370
397
  delete: 'Delete',
371
398
  save: 'Save',
372
399
  crateNewPreset: 'Create New Climate Preset',
400
+ unknownErrorOccured: 'An unknown error occurred.',
373
401
  }
@@ -1,6 +1,7 @@
1
1
  import classNames from 'classnames'
2
2
  import { type HTMLAttributes, type ReactNode, useState } from 'react'
3
3
 
4
+ import { getErrorMessage } from 'lib/errors.js'
4
5
  import { AddIcon } from 'lib/icons/Add.js'
5
6
  import { EditIcon } from 'lib/icons/Edit.js'
6
7
  import { FanIcon } from 'lib/icons/Fan.js'
@@ -18,6 +19,7 @@ import { IconButton } from 'lib/ui/IconButton.js'
18
19
  import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
19
20
  import { Popover } from 'lib/ui/Popover/Popover.js'
20
21
  import { PopoverContentPrompt } from 'lib/ui/Popover/PopoverContentPrompt.js'
22
+ import { Snackbar } from 'lib/ui/Snackbar/Snackbar.js'
21
23
  import { Spinner } from 'lib/ui/Spinner/Spinner.js'
22
24
  import { ClimatePreset } from 'lib/ui/thermostat/ClimatePreset.js'
23
25
 
@@ -40,7 +42,11 @@ export function ClimatePresets(props: ClimatePresetsManagement): JSX.Element {
40
42
  climatePresetKeySelectedForDeletion,
41
43
  setClimatePresetKeySelectedForDeletion,
42
44
  ] = useState<ThermostatClimatePreset['climate_preset_key'] | null>(null)
43
- const deleteMutation = useDeleteThermostatClimatePreset()
45
+
46
+ const { mutate, isError, error, isPending } =
47
+ useDeleteThermostatClimatePreset()
48
+
49
+ const errorMessage = getErrorMessage(error)
44
50
 
45
51
  if (
46
52
  selectedClimatePreset != null ||
@@ -62,52 +68,61 @@ export function ClimatePresets(props: ClimatePresetsManagement): JSX.Element {
62
68
  }
63
69
 
64
70
  return (
65
- <div className='seam-thermostat-climate-presets'>
66
- <ContentHeader title={t.title} onBack={onBack} />
67
- <div className='seam-thermostat-climate-presets-body'>
68
- <Button
69
- onClick={() => {
70
- setSelectedClimatePreset(CreateNewPresetSymbol)
71
- }}
72
- className='seam-climate-presets-add-button'
73
- >
74
- <AddIcon />
75
- {t.createNew}
76
- </Button>
77
-
78
- <div className='seam-thermostat-climate-presets-cards'>
79
- {device.properties.available_climate_presets.map((preset) => (
80
- <PresetCard
81
- onClickEdit={() => {
82
- setSelectedClimatePreset(preset)
83
- }}
84
- onClickDelete={() => {
85
- setClimatePresetKeySelectedForDeletion(
86
- preset.climate_preset_key
87
- )
88
- deleteMutation.mutate({
89
- climate_preset_key: preset.climate_preset_key,
90
- device_id: device.device_id,
91
- })
92
- }}
93
- temperatureUnit={props.temperatureUnit}
94
- preset={preset}
95
- key={preset.climate_preset_key}
96
- deletionLoading={
97
- deleteMutation.isPending &&
98
- climatePresetKeySelectedForDeletion ===
99
- preset.climate_preset_key
100
- }
101
- disabled={
102
- deleteMutation.isPending &&
103
- climatePresetKeySelectedForDeletion !==
104
- preset.climate_preset_key
105
- }
106
- />
107
- ))}
71
+ <>
72
+ <Snackbar
73
+ message={errorMessage}
74
+ variant='error'
75
+ visible={isError}
76
+ automaticVisibility
77
+ />
78
+
79
+ <div className='seam-thermostat-climate-presets'>
80
+ <ContentHeader title={t.title} onBack={onBack} />
81
+ <div className='seam-thermostat-climate-presets-body'>
82
+ <Button
83
+ onClick={() => {
84
+ setSelectedClimatePreset(CreateNewPresetSymbol)
85
+ }}
86
+ className='seam-climate-presets-add-button'
87
+ >
88
+ <AddIcon />
89
+ {t.createNew}
90
+ </Button>
91
+
92
+ <div className='seam-thermostat-climate-presets-cards'>
93
+ {device.properties.available_climate_presets.map((preset) => (
94
+ <PresetCard
95
+ onClickEdit={() => {
96
+ setSelectedClimatePreset(preset)
97
+ }}
98
+ onClickDelete={() => {
99
+ setClimatePresetKeySelectedForDeletion(
100
+ preset.climate_preset_key
101
+ )
102
+ mutate({
103
+ climate_preset_key: preset.climate_preset_key,
104
+ device_id: device.device_id,
105
+ })
106
+ }}
107
+ temperatureUnit={props.temperatureUnit}
108
+ preset={preset}
109
+ key={preset.climate_preset_key}
110
+ deletionLoading={
111
+ isPending &&
112
+ climatePresetKeySelectedForDeletion ===
113
+ preset.climate_preset_key
114
+ }
115
+ disabled={
116
+ isPending &&
117
+ climatePresetKeySelectedForDeletion !==
118
+ preset.climate_preset_key
119
+ }
120
+ />
121
+ ))}
122
+ </div>
108
123
  </div>
109
124
  </div>
110
- </div>
125
+ </>
111
126
  )
112
127
  }
113
128
 
@@ -232,4 +247,5 @@ const t = {
232
247
  createNew: 'Create New',
233
248
  delete: 'Delete',
234
249
  edit: 'Edit',
250
+ climatePresetNotFound: 'Climate Preset not found.',
235
251
  }
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '4.7.0'
1
+ const seamapiReactVersion = '4.8.0'
2
2
 
3
3
  export default seamapiReactVersion