@seamapi/react 4.2.0 → 4.3.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.
Files changed (43) hide show
  1. package/README.md +2 -2
  2. package/dist/elements.js +4652 -4471
  3. package/dist/elements.js.map +1 -1
  4. package/dist/index.css +49 -0
  5. package/dist/index.css.map +1 -1
  6. package/dist/index.min.css +1 -1
  7. package/dist/index.min.css.map +1 -1
  8. package/lib/icons/Edit.js +2 -4
  9. package/lib/icons/Edit.js.map +1 -1
  10. package/lib/seam/components/DeviceDetails/DeviceDetails.js +15 -3
  11. package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
  12. package/lib/seam/components/DeviceDetails/LockDeviceDetails.d.ts +2 -1
  13. package/lib/seam/components/DeviceDetails/LockDeviceDetails.js +3 -2
  14. package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
  15. package/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.d.ts +2 -1
  16. package/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.js +3 -2
  17. package/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.js.map +1 -1
  18. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.d.ts +2 -1
  19. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +2 -2
  20. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
  21. package/lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.d.ts +8 -0
  22. package/lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js +85 -0
  23. package/lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js.map +1 -0
  24. package/lib/seam/devices/use-update-device-name.d.ts +8 -0
  25. package/lib/seam/devices/use-update-device-name.js +43 -0
  26. package/lib/seam/devices/use-update-device-name.js.map +1 -0
  27. package/lib/ui/thermostat/ThermostatCard.d.ts +2 -1
  28. package/lib/ui/thermostat/ThermostatCard.js +4 -3
  29. package/lib/ui/thermostat/ThermostatCard.js.map +1 -1
  30. package/lib/version.d.ts +1 -1
  31. package/lib/version.js +1 -1
  32. package/package.json +1 -1
  33. package/src/lib/icons/Edit.tsx +6 -19
  34. package/src/lib/seam/components/DeviceDetails/DeviceDetails.tsx +35 -4
  35. package/src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx +9 -1
  36. package/src/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.tsx +8 -1
  37. package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +3 -1
  38. package/src/lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.tsx +208 -0
  39. package/src/lib/seam/devices/use-update-device-name.ts +93 -0
  40. package/src/lib/ui/thermostat/ThermostatCard.tsx +11 -6
  41. package/src/lib/version.ts +1 -1
  42. package/src/styles/_main.scss +2 -0
  43. package/src/styles/_seam-editable-device-name.scss +62 -0
@@ -3,6 +3,7 @@ import type { NestedSpecificDeviceDetailsProps } from '../../../../lib/seam/comp
3
3
  import type { LockDevice } from '../../../../lib/seam/locks/lock-device.js';
4
4
  interface LockDeviceDetailsProps extends NestedSpecificDeviceDetailsProps {
5
5
  device: LockDevice;
6
+ onEditName?: (newName: string) => void | Promise<void>;
6
7
  }
7
- export declare function LockDeviceDetails({ device, errorFilter, warningFilter, disableLockUnlock, disableCreateAccessCode, disableEditAccessCode, disableDeleteAccessCode, disableResourceIds, disableConnectedAccountInformation, onBack, className, }: LockDeviceDetailsProps): JSX.Element | null;
8
+ export declare function LockDeviceDetails({ device, errorFilter, warningFilter, disableLockUnlock, disableCreateAccessCode, disableEditAccessCode, disableDeleteAccessCode, disableResourceIds, disableConnectedAccountInformation, onBack, className, onEditName, }: LockDeviceDetailsProps): JSX.Element | null;
8
9
  export {};
@@ -5,6 +5,7 @@ import { useAccessCodes } from '../../../../lib/seam/access-codes/use-access-cod
5
5
  import { NestedAccessCodeTable } from '../../../../lib/seam/components/AccessCodeTable/AccessCodeTable.js';
6
6
  import { DeviceInfo } from '../../../../lib/seam/components/DeviceDetails/DeviceInfo.js';
7
7
  import { DeviceModel } from '../../../../lib/seam/components/DeviceDetails/DeviceModel.js';
8
+ import { SeamEditableDeviceName } from '../../../../lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js';
8
9
  import { deviceErrorFilter, deviceWarningFilter } from '../../../../lib/seam/filters.js';
9
10
  import { useToggleLock } from '../../../../lib/seam/locks/use-toggle-lock.js';
10
11
  import { Alerts } from '../../../../lib/ui/Alert/Alerts.js';
@@ -14,7 +15,7 @@ import { DeviceImage } from '../../../../lib/ui/device/DeviceImage.js';
14
15
  import { OnlineStatus } from '../../../../lib/ui/device/OnlineStatus.js';
15
16
  import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
16
17
  import { useToggle } from '../../../../lib/ui/use-toggle.js';
17
- export function LockDeviceDetails({ device, errorFilter, warningFilter, disableLockUnlock, disableCreateAccessCode, disableEditAccessCode, disableDeleteAccessCode, disableResourceIds, disableConnectedAccountInformation, onBack, className, }) {
18
+ export function LockDeviceDetails({ device, errorFilter, warningFilter, disableLockUnlock, disableCreateAccessCode, disableEditAccessCode, disableDeleteAccessCode, disableResourceIds, disableConnectedAccountInformation, onBack, className, onEditName, }) {
18
19
  const [accessCodesOpen, toggleAccessCodesOpen] = useToggle();
19
20
  const toggleLock = useToggleLock();
20
21
  const { accessCodes } = useAccessCodes({
@@ -45,7 +46,7 @@ export function LockDeviceDetails({ device, errorFilter, warningFilter, disableL
45
46
  message: warning.message,
46
47
  })),
47
48
  ];
48
- return (_jsxs("div", { className: classNames('seam-device-details', className), children: [_jsx(ContentHeader, { title: 'Device', onBack: onBack }), _jsxs("div", { className: 'seam-body', children: [_jsxs("div", { className: 'seam-summary', children: [_jsxs("div", { className: 'seam-content', children: [_jsx("div", { className: 'seam-image', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-info', children: [_jsx("span", { className: 'seam-label', children: t.device }), _jsx("h4", { className: 'seam-device-name', children: device.properties.name }), _jsxs("div", { className: 'seam-properties', children: [_jsxs("span", { className: 'seam-label', children: [t.status, ":"] }), ' ', _jsx(OnlineStatus, { device: device }), device.properties.online && (_jsxs(_Fragment, { children: [_jsxs("span", { className: 'seam-label', children: [t.power, ":"] }), ' ', _jsx(BatteryStatusIndicator, { device: device })] })), _jsx(DeviceModel, { device: device })] })] })] }), _jsx(Alerts, { alerts: alerts, className: 'seam-alerts-space-top' })] }), _jsx("div", { className: 'seam-box', children: _jsxs("div", { className: 'seam-content seam-access-codes', onClick: toggleAccessCodesOpen, children: [_jsxs("span", { className: 'seam-value', children: [accessCodeCount, " ", t.accessCodes] }), _jsx(ChevronRightIcon, {})] }) }), _jsxs("div", { className: 'seam-box', children: [device.properties.locked && device.properties.online && (_jsxs("div", { className: 'seam-content seam-lock-status', children: [_jsxs("div", { children: [_jsx("span", { className: 'seam-label', children: t.lockStatus }), _jsx("span", { className: 'seam-value', children: lockStatus })] }), _jsx("div", { className: 'seam-right', children: !disableLockUnlock &&
49
+ return (_jsxs("div", { className: classNames('seam-device-details', className), children: [_jsx(ContentHeader, { title: 'Device', onBack: onBack }), _jsxs("div", { className: 'seam-body', children: [_jsxs("div", { className: 'seam-summary', children: [_jsxs("div", { className: 'seam-content', children: [_jsx("div", { className: 'seam-image', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-info', children: [_jsx("span", { className: 'seam-label', children: t.device }), _jsx(SeamEditableDeviceName, { tagName: 'h4', value: device.properties.name, className: 'seam-device-name', onEdit: onEditName }), _jsxs("div", { className: 'seam-properties', children: [_jsxs("span", { className: 'seam-label', children: [t.status, ":"] }), ' ', _jsx(OnlineStatus, { device: device }), device.properties.online && (_jsxs(_Fragment, { children: [_jsxs("span", { className: 'seam-label', children: [t.power, ":"] }), ' ', _jsx(BatteryStatusIndicator, { device: device })] })), _jsx(DeviceModel, { device: device })] })] })] }), _jsx(Alerts, { alerts: alerts, className: 'seam-alerts-space-top' })] }), _jsx("div", { className: 'seam-box', children: _jsxs("div", { className: 'seam-content seam-access-codes', onClick: toggleAccessCodesOpen, children: [_jsxs("span", { className: 'seam-value', children: [accessCodeCount, " ", t.accessCodes] }), _jsx(ChevronRightIcon, {})] }) }), _jsxs("div", { className: 'seam-box', children: [device.properties.locked && device.properties.online && (_jsxs("div", { className: 'seam-content seam-lock-status', children: [_jsxs("div", { children: [_jsx("span", { className: 'seam-label', children: t.lockStatus }), _jsx("span", { className: 'seam-value', children: lockStatus })] }), _jsx("div", { className: 'seam-right', children: !disableLockUnlock &&
49
50
  device.capabilities_supported.includes('lock') && (_jsx(Button, { size: 'small', onClick: () => {
50
51
  toggleLock.mutate(device);
51
52
  }, children: toggleLockLabel })) })] })), _jsx(AccessCodeLength, { supportedCodeLengths: device.properties?.supported_code_lengths ?? [] })] }), _jsx(DeviceInfo, { device: device, disableConnectedAccountInformation: disableConnectedAccountInformation, disableResourceIds: disableResourceIds })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"LockDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LockDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { NestedSpecificDeviceDetailsProps } from '../../../../lib/seam/comp
3
3
  import type { NoiseSensorDevice } from '../../../../lib/seam/noise-sensors/noise-sensor-device.js';
4
4
  interface NoiseSensorDeviceDetailsProps extends NestedSpecificDeviceDetailsProps {
5
5
  device: NoiseSensorDevice;
6
+ onEditName?: (newName: string) => void | Promise<void>;
6
7
  }
7
- export declare function NoiseSensorDeviceDetails({ device, disableConnectedAccountInformation, disableResourceIds, onBack, className, }: NoiseSensorDeviceDetailsProps): JSX.Element | null;
8
+ export declare function NoiseSensorDeviceDetails({ device, disableConnectedAccountInformation, disableResourceIds, onBack, className, onEditName, }: NoiseSensorDeviceDetailsProps): JSX.Element | null;
8
9
  export {};
@@ -3,6 +3,7 @@ import classNames from 'classnames';
3
3
  import { useState } from 'react';
4
4
  import { DeviceInfo } from '../../../../lib/seam/components/DeviceDetails/DeviceInfo.js';
5
5
  import { DeviceModel } from '../../../../lib/seam/components/DeviceDetails/DeviceModel.js';
6
+ import { SeamEditableDeviceName } from '../../../../lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js';
6
7
  import { DeviceImage } from '../../../../lib/ui/device/DeviceImage.js';
7
8
  import { NoiseLevelStatus } from '../../../../lib/ui/device/NoiseLevelStatus.js';
8
9
  import { OnlineStatus } from '../../../../lib/ui/device/OnlineStatus.js';
@@ -10,9 +11,9 @@ import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
10
11
  import { NoiseSensorActivityList } from '../../../../lib/ui/noise-sensor/NoiseSensorActivityList.js';
11
12
  import { NoiseThresholdsList } from '../../../../lib/ui/noise-sensor/NoiseThresholdsList.js';
12
13
  import { TabSet } from '../../../../lib/ui/TabSet.js';
13
- export function NoiseSensorDeviceDetails({ device, disableConnectedAccountInformation, disableResourceIds, onBack, className, }) {
14
+ export function NoiseSensorDeviceDetails({ device, disableConnectedAccountInformation, disableResourceIds, onBack, className, onEditName, }) {
14
15
  const [tab, setTab] = useState('details');
15
- return (_jsx("div", { className: classNames('seam-device-details', className), children: _jsxs("div", { className: 'seam-body seam-body-no-margin', children: [_jsxs("div", { className: 'seam-contained-summary', children: [_jsx(ContentHeader, { title: t.noiseSensor, onBack: onBack, className: 'seam-content-header-contained' }), _jsx("div", { className: 'seam-summary', children: _jsxs("div", { className: 'seam-content', children: [_jsx("div", { className: 'seam-image', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-info', children: [_jsx("span", { className: 'seam-label', children: t.noiseSensor }), _jsx("h4", { className: 'seam-device-name', children: device.properties.name }), _jsxs("div", { className: 'seam-properties', children: [_jsxs("span", { className: 'seam-label', children: [t.status, ":"] }), ' ', _jsx(OnlineStatus, { device: device }), _jsx(NoiseLevelStatus, { device: device }), _jsx(DeviceModel, { device: device })] })] })] }) }), _jsx(TabSet, { tabs: ['details', 'activity'], tabTitles: {
16
+ return (_jsx("div", { className: classNames('seam-device-details', className), children: _jsxs("div", { className: 'seam-body seam-body-no-margin', children: [_jsxs("div", { className: 'seam-contained-summary', children: [_jsx(ContentHeader, { title: t.noiseSensor, onBack: onBack, className: 'seam-content-header-contained' }), _jsx("div", { className: 'seam-summary', children: _jsxs("div", { className: 'seam-content', children: [_jsx("div", { className: 'seam-image', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-info', children: [_jsx("span", { className: 'seam-label', children: t.noiseSensor }), _jsx(SeamEditableDeviceName, { onEdit: onEditName, tagName: 'h4', value: device.properties.name }), _jsxs("div", { className: 'seam-properties', children: [_jsxs("span", { className: 'seam-label', children: [t.status, ":"] }), ' ', _jsx(OnlineStatus, { device: device }), _jsx(NoiseLevelStatus, { device: device }), _jsx(DeviceModel, { device: device })] })] })] }) }), _jsx(TabSet, { tabs: ['details', 'activity'], tabTitles: {
16
17
  details: t.details,
17
18
  activity: t.activity,
18
19
  }, activeTab: tab, onTabChange: (tab) => {
@@ -1 +1 @@
1
- {"version":3,"file":"NoiseSensorDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AASzC,MAAM,UAAU,wBAAwB,CAAC,EACvC,MAAM,EACN,kCAAkC,EAClC,kBAAkB,EAClB,MAAM,EACN,SAAS,GACqB;IAC9B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAU,SAAS,CAAC,CAAA;IAElD,OAAO,CACL,cAAK,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,YAC1D,eAAK,SAAS,EAAC,+BAA+B,aAC5C,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,aAAa,IACZ,KAAK,EAAE,CAAC,CAAC,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,+BAA+B,GACzC,EACF,cAAK,SAAS,EAAC,cAAc,YAC3B,eAAK,SAAS,EAAC,cAAc,aAC3B,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,GAC3B,EACN,eAAK,SAAS,EAAC,WAAW,aACxB,eAAM,SAAS,EAAC,YAAY,YAAE,CAAC,CAAC,WAAW,GAAQ,EACnD,aAAI,SAAS,EAAC,kBAAkB,YAAE,MAAM,CAAC,UAAU,CAAC,IAAI,GAAM,EAC9D,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAM,SAAS,EAAC,YAAY,aAAE,CAAC,CAAC,MAAM,SAAS,EAAC,GAAG,EACnD,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,EAChC,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI,EACpC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,IAC3B,IACF,IACF,GACF,EAEN,KAAC,MAAM,IACL,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAC7B,SAAS,EAAE;gCACT,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;6BACrB,EACD,SAAS,EAAE,GAAG,EACd,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;gCACnB,MAAM,CAAC,GAAG,CAAC,CAAA;4BACb,CAAC,GACD,IACE,EAEL,GAAG,KAAK,SAAS,IAAI,CACpB,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,EAEvC,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,kCAAkC,EAChC,kCAAkC,EAEpC,kBAAkB,EAAE,kBAAkB,GACtC,IACE,CACP,EAEA,GAAG,KAAK,UAAU,IAAI,KAAC,uBAAuB,IAAC,MAAM,EAAE,MAAM,GAAI,IAC9D,GACF,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACrB,CAAA"}
1
+ {"version":3,"file":"NoiseSensorDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { NestedSpecificDeviceDetailsProps } from '../../../../lib/seam/comp
3
3
  import type { ThermostatDevice } from '../../../../lib/seam/thermostats/thermostat-device.js';
4
4
  interface ThermostatDeviceDetailsProps extends NestedSpecificDeviceDetailsProps {
5
5
  device: ThermostatDevice;
6
+ onEditName?: (newName: string) => void | Promise<void>;
6
7
  }
7
- export declare function ThermostatDeviceDetails({ device, disableResourceIds, disableConnectedAccountInformation, onBack, className, }: ThermostatDeviceDetailsProps): JSX.Element | null;
8
+ export declare function ThermostatDeviceDetails({ device, disableResourceIds, disableConnectedAccountInformation, onBack, className, onEditName, }: ThermostatDeviceDetailsProps): JSX.Element | null;
8
9
  export {};
@@ -20,11 +20,11 @@ import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSetti
20
20
  import { FanModeMenu } from '../../../../lib/ui/thermostat/FanModeMenu.js';
21
21
  import { TemperatureControlGroup } from '../../../../lib/ui/thermostat/TemperatureControlGroup.js';
22
22
  import { ThermostatCard } from '../../../../lib/ui/thermostat/ThermostatCard.js';
23
- export function ThermostatDeviceDetails({ device, disableResourceIds, disableConnectedAccountInformation, onBack, className, }) {
23
+ export function ThermostatDeviceDetails({ device, disableResourceIds, disableConnectedAccountInformation, onBack, className, onEditName, }) {
24
24
  if (device == null) {
25
25
  return null;
26
26
  }
27
- return (_jsxs("div", { className: classNames('seam-device-details', className), children: [_jsx(ContentHeader, { title: t.thermostat, onBack: onBack }), _jsxs("div", { className: 'seam-body', children: [_jsx(ThermostatCard, { device: device }), _jsx("div", { className: 'seam-thermostat-device-details', children: _jsxs(DetailSectionGroup, { children: [_jsxs(DetailSection, { label: t.currentSettings, tooltipContent: t.currentSettingsTooltip, children: [_jsx(ClimateSettingRow, { device: device }), _jsx(FanModeRow, { device: device })] }), _jsx(DeviceInfo, { device: device, disableConnectedAccountInformation: disableConnectedAccountInformation, disableResourceIds: disableResourceIds })] }) })] })] }));
27
+ return (_jsxs("div", { className: classNames('seam-device-details', className), children: [_jsx(ContentHeader, { title: t.thermostat, onBack: onBack }), _jsxs("div", { className: 'seam-body', children: [_jsx(ThermostatCard, { device: device, onEditName: onEditName }), _jsx("div", { className: 'seam-thermostat-device-details', children: _jsxs(DetailSectionGroup, { children: [_jsxs(DetailSection, { label: t.currentSettings, tooltipContent: t.currentSettingsTooltip, children: [_jsx(ClimateSettingRow, { device: device }), _jsx(FanModeRow, { device: device })] }), _jsx(DeviceInfo, { device: device, disableConnectedAccountInformation: disableConnectedAccountInformation, disableResourceIds: disableResourceIds })] }) })] })] }));
28
28
  }
29
29
  function FanModeRow({ device }) {
30
30
  const { mutate, isSuccess, isError } = useSetThermostatFanMode();
@@ -1 +1 @@
1
- {"version":3,"file":"ThermostatDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAK5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,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,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAOpE,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,kBAAkB,EAClB,kCAAkC,EAClC,MAAM,EACN,SAAS,GACoB;IAC7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,aAC1D,KAAC,aAAa,IAAC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,EAEtD,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,GAAI,EAElC,cAAK,SAAS,EAAC,gCAAgC,YAC7C,MAAC,kBAAkB,eACjB,MAAC,aAAa,IACZ,KAAK,EAAE,CAAC,CAAC,eAAe,EACxB,cAAc,EAAE,CAAC,CAAC,sBAAsB,aAExC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,EACrC,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,GAAI,IAChB,EAEhB,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,kCAAkC,EAChC,kCAAkC,EAEpC,kBAAkB,EAAE,kBAAkB,GACtC,IACiB,GACjB,IACF,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,MAAM,EAAgC;IAC1D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAAE,CAAA;IAEhE,OAAO,CACL,8BACE,cAAK,SAAS,EAAC,sBAAsB,YACnC,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,YACzB,KAAC,WAAW,IACV,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,EACxC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;4BACpB,MAAM,CAAC;gCACL,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,gBAAgB,EAAE,OAAO;6BAC1B,CAAC,CAAA;wBACJ,CAAC,GACD,GACQ,GACR,EAEN,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,cAAc,EACzB,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,SAAS,EAClB,mBAAmB,QACnB,WAAW,SACX,EAEF,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,YAAY,EACvB,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,OAAO,EAChB,mBAAmB,SACnB,IACD,CACJ,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,MAAM,GAGP;IACC,MAAM,eAAe,GACnB,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,4BAA4B,CAAA;IACxE,MAAM,eAAe,GACnB,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,4BAA4B,CAAA;IAExE,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAA;IAEzE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CACpC,CAAA;IAED,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,4BAA4B,IAAI,CAAC,CAC5E,CAAA;IAED,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,4BAA4B,IAAI,CAAC,CAC5E,CAAA;IAED,MAAM,EACJ,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACzB,GAAG,qBAAqB,EAAE,CAAA;IAE3B,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,GACrB,GAAG,iBAAiB,EAAE,CAAA;IAEvB,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,GACrB,GAAG,iBAAiB,EAAE,CAAA;IAEvB,MAAM,EACJ,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,aAAa,GACvB,GAAG,mBAAmB,EAAE,CAAA;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC5B,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,WAAW;oBACd,kBAAkB,CAAC;wBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,4BAA4B,EAAE,SAAS;wBACvC,4BAA4B,EAAE,SAAS;qBACxC,CAAC,CAAA;oBACF,MAAK;gBACP,KAAK,MAAM;oBACT,cAAc,CAAC;wBACb,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,4BAA4B,EAAE,SAAS;qBACxC,CAAC,CAAA;oBACF,MAAK;gBACP,KAAK,MAAM;oBACT,cAAc,CAAC;wBACb,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,4BAA4B,EAAE,SAAS;qBACxC,CAAC,CAAA;oBACF,MAAK;gBACP,KAAK,KAAK;oBACR,gBAAgB,CAAC;wBACf,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B,CAAC,CAAA;oBACF,MAAK;YACT,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,IACE,SAAS,KAAK,eAAe;YAC7B,SAAS,KAAK,eAAe;YAC7B,IAAI,KAAK,KAAK,EACd,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE;QACD,SAAS;QACT,SAAS;QACT,IAAI;QACJ,eAAe;QACf,eAAe;QACf,MAAM;QACN,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,gBAAgB;KACjB,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IACE,iBAAiB;YACjB,aAAa;YACb,aAAa;YACb,eAAe,EACf,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,CAAA;YAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE;gBACzC,cAAc,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC,EAAE,IAAI,CAAC,CAAA;YAER,OAAO,GAAG,EAAE;gBACV,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC,CAAA;QACH,CAAC;QAED,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;IAEtE,OAAO,CACL,8BACE,KAAC,YAAY,IACX,KAAK,EAAE,CAAC,CAAC,OAAO,EAChB,WAAW,EACT,eACE,SAAS,EAAE,UAAU,CAAC,iCAAiC,EAAE;wBACvD,YAAY,EAAE,WAAW;qBAC1B,CAAC,aAEF,cAAK,SAAS,EAAC,sCAAsC,YACnD,KAAC,cAAc,KAAG,GACd,EACN,cAAK,SAAS,EAAC,uCAAuC,YACnD,CAAC,CAAC,KAAK,GACJ,IACF,EAER,qBAAqB,EACnB,KAAC,oBAAoB,IACnB,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,uBAAuB,EACzD,eAAe,EAAC,YAAY,EAC5B,aAAa,EAAC,OAAO,GACrB,YAGJ,eAAK,SAAS,EAAC,+BAA+B,aAC3C,IAAI,KAAK,KAAK,IAAI,CACjB,KAAC,uBAAuB,IACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,iBAAiB,EAAE,YAAY,EAC/B,KAAK,EACH,MAAM,CACJ,sCAAsC,IAAI,MAAM,CAAC,UAAU;gCACzD,MAAM,CAAC,UAAU,CAAC,oCAAoC,CACzD,IAAI,CAAC,GAER,CACH,EAED,KAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,kBAAkB,GAClC,IACE,GACO,EAEf,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,mBAAmB,EAC9B,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,EACvE,mBAAmB,SACnB,IACD,CACJ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,kBAAkB;IACnC,sBAAsB,EACpB,qGAAqG;IACvG,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,gCAAgC;IAChD,YAAY,EAAE,4CAA4C;IAC1D,mBAAmB,EAAE,mDAAmD;IACxE,KAAK,EAAE,OAAO;CACf,CAAA"}
1
+ {"version":3,"file":"ThermostatDeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export type SeamDeviceNameProps = {
3
+ onEdit?: (newName: string) => void;
4
+ editable?: boolean;
5
+ tagName?: string;
6
+ value: string;
7
+ } & HTMLAttributes<HTMLElement>;
8
+ export declare function SeamEditableDeviceName({ onEdit, editable, tagName, value, ...props }: SeamDeviceNameProps): JSX.Element;
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { useCallback, useState, } from 'react';
4
+ import { CheckIcon } from '../../../../lib/icons/Check.js';
5
+ import { CloseIcon } from '../../../../lib/icons/Close.js';
6
+ import { EditIcon } from '../../../../lib/icons/Edit.js';
7
+ function IconButton(props) {
8
+ return (_jsx("button", { ...props, className: classNames('seam-editable-device-name-icon-button', props.className), children: props.children }));
9
+ }
10
+ const fixName = (name) => {
11
+ return name.replace(/\s+/g, ' ').trim();
12
+ };
13
+ const isValidName = (name) => {
14
+ if (name.length < 2) {
15
+ return {
16
+ type: 'error',
17
+ message: 'Name must be at least 2 characters long',
18
+ };
19
+ }
20
+ if (name.length > 64) {
21
+ return {
22
+ type: 'error',
23
+ message: 'Name must be at most 64 characters long',
24
+ };
25
+ }
26
+ return {
27
+ type: 'success',
28
+ };
29
+ };
30
+ export function SeamEditableDeviceName({ onEdit, editable = true, tagName, value, ...props }) {
31
+ const [editing, setEditing] = useState(false);
32
+ const [errorText, setErrorText] = useState(null);
33
+ const [currentValue, setCurrentValue] = useState(value);
34
+ const Tag = (tagName ?? 'span');
35
+ const handleCheck = useCallback(() => {
36
+ const fixedName = fixName(currentValue);
37
+ const valid = isValidName(fixedName);
38
+ if (valid.type === 'error') {
39
+ setErrorText(valid.message);
40
+ return;
41
+ }
42
+ setEditing(false);
43
+ setCurrentValue(fixedName);
44
+ onEdit?.(fixedName);
45
+ }, [currentValue, onEdit]);
46
+ const handleChange = useCallback((event) => {
47
+ setCurrentValue(event.target.value);
48
+ setErrorText(null);
49
+ }, []);
50
+ const handleCancel = useCallback(() => {
51
+ setEditing(false);
52
+ setCurrentValue(value);
53
+ setErrorText(null);
54
+ }, [value]);
55
+ const handleInputKeydown = useCallback((e) => {
56
+ if (e.repeat)
57
+ return;
58
+ if (e.key === 'Enter') {
59
+ handleCheck();
60
+ }
61
+ else if (e.key === 'Escape') {
62
+ handleCancel();
63
+ }
64
+ }, [handleCheck, handleCancel]);
65
+ return (_jsxs(Tag, { ...props, className: classNames('seam-editable-device-name', props.className), children: [_jsx(NameView, { editing: editing, value: currentValue, onChange: handleChange, onKeyDown: handleInputKeydown, errorText: errorText }), editable && (_jsx("span", { className: 'seam-editable-device-name-icon-wrapper', children: _jsx(ActionButtons, { editing: editing, onEdit: () => {
66
+ setEditing(true);
67
+ }, onCancel: handleCancel, onCheck: handleCheck }) }))] }));
68
+ }
69
+ function NameView(props) {
70
+ if (!props.editing) {
71
+ return _jsx("span", { children: props.value });
72
+ }
73
+ return (_jsxs("span", { className: 'seam-editable-device-name-input-wrapper', children: [_jsx("input", { type: 'text', defaultValue: props.value, onChange: props.onChange, onKeyDown: props.onKeyDown, ref: (el) => {
74
+ setTimeout(() => {
75
+ el?.focus();
76
+ }, 0);
77
+ } }), props.errorText != null && (_jsx("span", { className: 'seam-editable-device-name-input-error', children: props.errorText }))] }));
78
+ }
79
+ function ActionButtons(props) {
80
+ if (props.editing) {
81
+ return (_jsxs(_Fragment, { children: [_jsx(IconButton, { onClick: props.onCheck, children: _jsx(CheckIcon, { width: '1em', height: '1em', viewBox: '0 0 24 24' }) }), _jsx(IconButton, { onClick: props.onCancel, children: _jsx(CloseIcon, { width: '1em', height: '1em', viewBox: '0 0 24 24' }) })] }));
82
+ }
83
+ return (_jsx(IconButton, { onClick: props.onEdit, children: _jsx(EditIcon, { width: '1em', height: '1em', viewBox: '0 0 24 24' }) }));
84
+ }
85
+ //# sourceMappingURL=SeamEditableDeviceName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeamEditableDeviceName.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAKL,WAAW,EACX,QAAQ,GACT,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAS5C,SAAS,UAAU,CACjB,KAA2D;IAE3D,OAAO,CACL,oBACM,KAAK,EACT,SAAS,EAAE,UAAU,CACnB,uCAAuC,EACvC,KAAK,CAAC,SAAS,CAChB,YAEA,KAAK,CAAC,QAAQ,GACR,CACV,CAAA;AACH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AACzC,CAAC,CAAA;AAID,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yCAAyC;SACnD,CAAA;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yCAAyC;SACnD,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;KACP,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,MAAM,EACN,QAAQ,GAAG,IAAI,EACf,OAAO,EACP,KAAK,EACL,GAAG,KAAK,EACY;IACpB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,MAAM,CAAU,CAAA;IAExC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;QAEpC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,MAAM,EAAE,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1B,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAoC,EAAQ,EAAE;QAC7C,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnC,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,eAAe,CAAC,KAAK,CAAC,CAAA;QACtB,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,CAAkC,EAAQ,EAAE;QAC3C,IAAI,CAAC,CAAC,MAAM;YAAE,OAAM;QAEpB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,WAAW,EAAE,CAAA;QACf,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9B,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,YAAY,CAAC,CAC5B,CAAA;IAED,OAAO,CACL,MAAC,GAAG,OACE,KAAK,EACT,SAAS,EAAE,UAAU,CAAC,2BAA2B,EAAE,KAAK,CAAC,SAAS,CAAC,aAEnE,KAAC,QAAQ,IACP,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAE,SAAS,GACpB,EAED,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,wCAAwC,YACtD,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,EAAE;wBACX,UAAU,CAAC,IAAI,CAAC,CAAA;oBAClB,CAAC,EACD,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,GACpB,GACG,CACR,IACG,CACP,CAAA;AACH,CAAC;AAUD,SAAS,QAAQ,CAAC,KAAoB;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,yBAAO,KAAK,CAAC,KAAK,GAAQ,CAAA;IACnC,CAAC;IAED,OAAO,CACL,gBAAM,SAAS,EAAC,yCAAyC,aACvD,gBACE,IAAI,EAAC,MAAM,EACX,YAAY,EAAE,KAAK,CAAC,KAAK,EACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,UAAU,CAAC,GAAG,EAAE;wBACd,EAAE,EAAE,KAAK,EAAE,CAAA;oBACb,CAAC,EAAE,CAAC,CAAC,CAAA;gBACP,CAAC,GACD,EAED,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,CAC1B,eAAM,SAAS,EAAC,uCAAuC,YACpD,KAAK,CAAC,SAAS,GACX,CACR,IACI,CACR,CAAA;AACH,CAAC;AASD,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CACL,8BACE,KAAC,UAAU,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,YAChC,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,GAAG,GAC/C,EACb,KAAC,UAAU,IAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,YACjC,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,GAAG,GAC/C,IACZ,CACJ,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAE,KAAK,CAAC,MAAM,YAC/B,KAAC,QAAQ,IAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,GAAG,GAC9C,CACd,CAAA;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { DevicesGetParams, DevicesUpdateBody, SeamHttpApiError } from '@seamapi/http/connect';
2
+ import { type UseMutationResult } from '@tanstack/react-query';
3
+ export type UseUpdateDeviceNameParams = never;
4
+ export type UseUpdateDeviceNameData = undefined;
5
+ export type UseUpdateDeviceNameMutationVariables = Pick<DevicesUpdateBody, 'device_id' | 'name'>;
6
+ type MutationError = SeamHttpApiError;
7
+ export declare function useUpdateDeviceName(params: DevicesGetParams): UseMutationResult<UseUpdateDeviceNameData, MutationError, UseUpdateDeviceNameMutationVariables>;
8
+ export {};
@@ -0,0 +1,43 @@
1
+ import { useMutation, useQueryClient, } from '@tanstack/react-query';
2
+ import { NullSeamClientError, useSeamClient } from '../../../lib/seam/use-seam-client.js';
3
+ export function useUpdateDeviceName(params) {
4
+ const { client } = useSeamClient();
5
+ const queryClient = useQueryClient();
6
+ return useMutation({
7
+ mutationFn: async (variables) => {
8
+ if (client === null)
9
+ throw new NullSeamClientError();
10
+ await client.devices.update(variables);
11
+ },
12
+ onSuccess: (_data, variables) => {
13
+ queryClient.setQueryData(['devices', 'get', params], (device) => {
14
+ if (device == null) {
15
+ return;
16
+ }
17
+ return getUpdatedDevice(device, variables.name ?? device.properties.name);
18
+ });
19
+ queryClient.setQueryData(['devices', 'list', { device_id: variables.device_id }], (devices) => {
20
+ if (devices == null) {
21
+ return [];
22
+ }
23
+ return devices.map((device) => {
24
+ if (device.device_id === variables.device_id) {
25
+ return getUpdatedDevice(device, variables.name ?? device.properties.name);
26
+ }
27
+ return device;
28
+ });
29
+ });
30
+ },
31
+ });
32
+ }
33
+ const getUpdatedDevice = (device, name) => {
34
+ const { properties } = device;
35
+ return {
36
+ ...device,
37
+ properties: {
38
+ ...properties,
39
+ name,
40
+ },
41
+ };
42
+ };
43
+ //# sourceMappingURL=use-update-device-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-update-device-name.js","sourceRoot":"","sources":["../../../src/lib/seam/devices/use-update-device-name.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EAEX,cAAc,GACf,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAahF,MAAM,UAAU,mBAAmB,CACjC,MAAwB;IAMxB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,OAAO,WAAW,CAIhB;QACA,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC9B,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,mBAAmB,EAAE,CAAA;YACpD,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QACD,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YAC9B,WAAW,CAAC,YAAY,CACtB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,EAC1B,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,OAAM;gBACR,CAAC;gBAED,OAAO,gBAAgB,CACrB,MAAM,EACN,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CACzC,CAAA;YACH,CAAC,CACF,CAAA;YAED,WAAW,CAAC,YAAY,CACtB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,EACvD,CAAC,OAAO,EAAY,EAAE;gBACpB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAA;gBACX,CAAC;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;wBAC7C,OAAO,gBAAgB,CACrB,MAAM,EACN,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CACzC,CAAA;oBACH,CAAC;oBAED,OAAO,MAAM,CAAA;gBACf,CAAC,CAAC,CAAA;YACJ,CAAC,CACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IAE7B,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE;YACV,GAAG,UAAU;YACb,IAAI;SACL;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -2,6 +2,7 @@
2
2
  import type { ThermostatDevice } from '../../../lib/seam/thermostats/thermostat-device.js';
3
3
  interface ThermostatCardProps {
4
4
  device: ThermostatDevice;
5
+ onEditName?: (newName: string) => void;
5
6
  }
6
- export declare function ThermostatCard({ device }: ThermostatCardProps): JSX.Element;
7
+ export declare function ThermostatCard(props: ThermostatCardProps): JSX.Element;
7
8
  export {};
@@ -3,11 +3,12 @@ import classNames from 'classnames';
3
3
  import { useState } from 'react';
4
4
  import { FanIcon } from '../../../lib/icons/Fan.js';
5
5
  import { OffIcon } from '../../../lib/icons/Off.js';
6
+ import { SeamEditableDeviceName } from '../../../lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js';
6
7
  import { DeviceImage } from '../../../lib/ui/device/DeviceImage.js';
7
8
  import { ClimateSettingStatus } from '../../../lib/ui/thermostat/ClimateSettingStatus.js';
8
9
  import { Temperature } from '../../../lib/ui/thermostat/Temperature.js';
9
- export function ThermostatCard({ device }) {
10
- return (_jsx("div", { className: 'seam-thermostat-card', children: _jsx(Content, { device: device }) }));
10
+ export function ThermostatCard(props) {
11
+ return (_jsx("div", { className: 'seam-thermostat-card', children: _jsx(Content, { device: props.device, onEditName: props.onEditName }) }));
11
12
  }
12
13
  function Content(props) {
13
14
  const { device } = props;
@@ -17,7 +18,7 @@ function Content(props) {
17
18
  };
18
19
  const { temperature_fahrenheit: temperatureFahrenheit, temperature_celsius: temperatureCelsius, current_climate_setting: currentClimateSetting, is_fan_running: isFanRunning, relative_humidity: relativeHumidity, } = device.properties;
19
20
  const systemStatus = getSystemStatus(device);
20
- return (_jsxs("div", { className: 'seam-thermostat-card-content', children: [_jsx("div", { className: 'seam-thermostat-card-image-wrap', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-thermostat-card-details', children: [_jsxs("div", { className: 'seam-thermostat-heading-wrap', children: [_jsx("h4", { className: 'seam-thermostat-card-heading', children: device.properties.name }), _jsx("button", { onClick: toggleTemperatureUnit, className: 'seam-thermostat-temperature-toggle', children: _jsx("span", { className: 'seam-thermostat-temperature-toggle-label', children: temperatureUnit === 'fahrenheit' ? t.fahrenheit : t.celsius }) })] }), _jsx("div", { className: 'seam-thermostat-properties-wrap', children: _jsxs("div", { className: 'seam-thermostat-properties', children: [_jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.temperature, ":"] }) }), _jsxs("div", { className: 'seam-thermostat-property-block', children: [_jsx("p", { className: 'seam-thermostat-property-value', children: _jsx(Temperature, { fahrenheit: temperatureFahrenheit, celsius: temperatureCelsius, unit: temperatureUnit }) }), _jsx("p", { className: 'seam-thermostat-property-value', children: "|" }), _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.humidity, ":"] }), relativeHumidity != null && (_jsxs("p", { className: 'seam-thermostat-property-value', children: [relativeHumidity * 100, "%"] }))] }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.setting, ":"] }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsx(ClimateSettingStatus, { climateSetting: currentClimateSetting, temperatureUnit: temperatureUnit }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.fanMode, ":"] }) }), _jsxs("div", { className: 'seam-thermostat-property-block seam-thermostat-property-icon-block', children: [_jsx("div", { className: 'seam-thermostat-property-icon', children: isFanRunning ? _jsx(FanIcon, {}) : _jsx(OffIcon, {}) }), _jsx("p", { className: 'seam-thermostat-property-value', children: isFanRunning ? t.auto : t.off })] }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.systemStatus, ":"] }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsx("div", { className: classNames('seam-thermostat-property-tag', `seam-thermostat-property-tag-${systemStatus}`), children: _jsx("p", { className: 'seam-thermostat-property-tag-label', children: systemStatus === 'off' ? '--' : t[systemStatus] }) }) })] }) })] })] }));
21
+ return (_jsxs("div", { className: 'seam-thermostat-card-content', children: [_jsx("div", { className: 'seam-thermostat-card-image-wrap', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-thermostat-card-details', children: [_jsxs("div", { className: 'seam-thermostat-heading-wrap', children: [_jsx(SeamEditableDeviceName, { value: device.properties.name, tagName: 'h4', className: 'seam-thermostat-card-heading', onEdit: props.onEditName }), _jsx("button", { onClick: toggleTemperatureUnit, className: 'seam-thermostat-temperature-toggle', children: _jsx("span", { className: 'seam-thermostat-temperature-toggle-label', children: temperatureUnit === 'fahrenheit' ? t.fahrenheit : t.celsius }) })] }), _jsx("div", { className: 'seam-thermostat-properties-wrap', children: _jsxs("div", { className: 'seam-thermostat-properties', children: [_jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.temperature, ":"] }) }), _jsxs("div", { className: 'seam-thermostat-property-block', children: [_jsx("p", { className: 'seam-thermostat-property-value', children: _jsx(Temperature, { fahrenheit: temperatureFahrenheit, celsius: temperatureCelsius, unit: temperatureUnit }) }), _jsx("p", { className: 'seam-thermostat-property-value', children: "|" }), _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.humidity, ":"] }), relativeHumidity != null && (_jsxs("p", { className: 'seam-thermostat-property-value', children: [relativeHumidity * 100, "%"] }))] }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.setting, ":"] }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsx(ClimateSettingStatus, { climateSetting: currentClimateSetting, temperatureUnit: temperatureUnit }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.fanMode, ":"] }) }), _jsxs("div", { className: 'seam-thermostat-property-block seam-thermostat-property-icon-block', children: [_jsx("div", { className: 'seam-thermostat-property-icon', children: isFanRunning ? _jsx(FanIcon, {}) : _jsx(OffIcon, {}) }), _jsx("p", { className: 'seam-thermostat-property-value', children: isFanRunning ? t.auto : t.off })] }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsxs("p", { className: 'seam-thermostat-property-label', children: [t.systemStatus, ":"] }) }), _jsx("div", { className: 'seam-thermostat-property-block', children: _jsx("div", { className: classNames('seam-thermostat-property-tag', `seam-thermostat-property-tag-${systemStatus}`), children: _jsx("p", { className: 'seam-thermostat-property-tag-label', children: systemStatus === 'off' ? '--' : t[systemStatus] }) }) })] }) })] })] }));
21
22
  }
22
23
  const getSystemStatus = (device) => {
23
24
  const { properties } = device;
@@ -1 +1 @@
1
- {"version":3,"file":"ThermostatCard.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ThermostatCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThermostatCard.js","sourceRoot":"","sources":["../../../src/lib/ui/thermostat/ThermostatCard.tsx"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiReactVersion = "4.2.0";
1
+ declare const seamapiReactVersion = "4.3.0";
2
2
  export default seamapiReactVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '4.2.0';
1
+ const seamapiReactVersion = '4.3.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.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "Seam Components.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -13,25 +13,12 @@ export function EditIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
13
13
  viewBox='0 0 24 24'
14
14
  {...props}
15
15
  >
16
- <mask
17
- id='edit_svg__a'
18
- width={24}
19
- height={24}
20
- x={0}
21
- y={0}
22
- maskUnits='userSpaceOnUse'
23
- style={{
24
- maskType: 'alpha',
25
- }}
26
- >
27
- <path fill='#D9D9D9' d='M0 0h24v24H0z' />
28
- </mask>
29
- <g mask='url(#edit_svg__a)'>
30
- <path
31
- fill='#232B3A'
32
- d='M5 19h1.4l8.625-8.625-1.4-1.4L5 17.6zM19.3 8.925l-4.25-4.2 1.4-1.4a1.92 1.92 0 0 1 1.413-.575 1.92 1.92 0 0 1 1.412.575l1.4 1.4q.574.575.6 1.388a1.8 1.8 0 0 1-.55 1.387zM17.85 10.4 7.25 21H3v-4.25l10.6-10.6z'
33
- />
34
- </g>
16
+ <path
17
+ fill='#232426'
18
+ fillRule='evenodd'
19
+ d='M16.836 3.336c-1.015 0-1.99.403-2.707 1.121l-10.5 10.5a1 1 0 0 0-.293.707v4a1 1 0 0 0 1 1h4a1 1 0 0 0 .707-.293l9.5-9.5 1-1a3.829 3.829 0 0 0-2.707-6.535m1 5.414.293-.293a1.829 1.829 0 0 0-2.586-2.586l-.293.293zm-4-1.172-8.5 8.5v2.586h2.586l8.5-8.5z'
20
+ clipRule='evenodd'
21
+ />
35
22
  </svg>
36
23
  )
37
24
  }
@@ -6,6 +6,7 @@ import { LockDeviceDetails } from 'lib/seam/components/DeviceDetails/LockDeviceD
6
6
  import { NoiseSensorDeviceDetails } from 'lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.js'
7
7
  import { ThermostatDeviceDetails } from 'lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js'
8
8
  import { useDevice } from 'lib/seam/devices/use-device.js'
9
+ import { useUpdateDeviceName } from 'lib/seam/devices/use-update-device-name.js'
9
10
  import { isLockDevice } from 'lib/seam/locks/lock-device.js'
10
11
  import { isNoiseSensorDevice } from 'lib/seam/noise-sensors/noise-sensor-device.js'
11
12
  import { isThermostatDevice } from 'lib/seam/thermostats/thermostat-device.js'
@@ -16,7 +17,6 @@ export interface DeviceDetailsProps extends CommonProps {
16
17
  }
17
18
 
18
19
  export const NestedDeviceDetails = withRequiredCommonProps(DeviceDetails)
19
-
20
20
  export interface NestedSpecificDeviceDetailsProps
21
21
  extends Required<Omit<CommonProps, 'onBack' | 'className'>> {
22
22
  onBack: (() => void) | undefined
@@ -42,6 +42,19 @@ export function DeviceDetails({
42
42
  device_id: deviceId,
43
43
  })
44
44
 
45
+ const { mutate: setDeviceName } = useUpdateDeviceName({
46
+ device_id: deviceId,
47
+ })
48
+
49
+ const updateDeviceName = (newName: string): void => {
50
+ if (device != null) {
51
+ setDeviceName({
52
+ device_id: device.device_id,
53
+ name: newName,
54
+ })
55
+ }
56
+ }
57
+
45
58
  if (device == null) {
46
59
  return null
47
60
  }
@@ -60,15 +73,33 @@ export function DeviceDetails({
60
73
  }
61
74
 
62
75
  if (isLockDevice(device)) {
63
- return <LockDeviceDetails device={device} {...props} />
76
+ return (
77
+ <LockDeviceDetails
78
+ device={device}
79
+ onEditName={updateDeviceName}
80
+ {...props}
81
+ />
82
+ )
64
83
  }
65
84
 
66
85
  if (isThermostatDevice(device)) {
67
- return <ThermostatDeviceDetails device={device} {...props} />
86
+ return (
87
+ <ThermostatDeviceDetails
88
+ device={device}
89
+ onEditName={updateDeviceName}
90
+ {...props}
91
+ />
92
+ )
68
93
  }
69
94
 
70
95
  if (isNoiseSensorDevice(device)) {
71
- return <NoiseSensorDeviceDetails device={device} {...props} />
96
+ return (
97
+ <NoiseSensorDeviceDetails
98
+ device={device}
99
+ onEditName={updateDeviceName}
100
+ {...props}
101
+ />
102
+ )
72
103
  }
73
104
 
74
105
  return null
@@ -6,6 +6,7 @@ import { NestedAccessCodeTable } from 'lib/seam/components/AccessCodeTable/Acces
6
6
  import type { NestedSpecificDeviceDetailsProps } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
7
7
  import { DeviceInfo } from 'lib/seam/components/DeviceDetails/DeviceInfo.js'
8
8
  import { DeviceModel } from 'lib/seam/components/DeviceDetails/DeviceModel.js'
9
+ import { SeamEditableDeviceName } from 'lib/seam/components/SeamEditableDeviceName/SeamEditableDeviceName.js'
9
10
  import { deviceErrorFilter, deviceWarningFilter } from 'lib/seam/filters.js'
10
11
  import type { LockDevice } from 'lib/seam/locks/lock-device.js'
11
12
  import { useToggleLock } from 'lib/seam/locks/use-toggle-lock.js'
@@ -19,6 +20,7 @@ import { useToggle } from 'lib/ui/use-toggle.js'
19
20
 
20
21
  interface LockDeviceDetailsProps extends NestedSpecificDeviceDetailsProps {
21
22
  device: LockDevice
23
+ onEditName?: (newName: string) => void | Promise<void>
22
24
  }
23
25
 
24
26
  export function LockDeviceDetails({
@@ -33,6 +35,7 @@ export function LockDeviceDetails({
33
35
  disableConnectedAccountInformation,
34
36
  onBack,
35
37
  className,
38
+ onEditName,
36
39
  }: LockDeviceDetailsProps): JSX.Element | null {
37
40
  const [accessCodesOpen, toggleAccessCodesOpen] = useToggle()
38
41
  const toggleLock = useToggleLock()
@@ -95,7 +98,12 @@ export function LockDeviceDetails({
95
98
  </div>
96
99
  <div className='seam-info'>
97
100
  <span className='seam-label'>{t.device}</span>
98
- <h4 className='seam-device-name'>{device.properties.name}</h4>
101
+ <SeamEditableDeviceName
102
+ tagName='h4'
103
+ value={device.properties.name}
104
+ className='seam-device-name'
105
+ onEdit={onEditName}
106
+ />
99
107
  <div className='seam-properties'>
100
108
  <span className='seam-label'>{t.status}:</span>{' '}
101
109
  <OnlineStatus device={device} />