@seamapi/react 1.62.0 → 1.63.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 +1 -1
- package/dist/elements.js +984 -946
- package/dist/elements.js.map +1 -1
- package/lib/seam/access-codes/use-update-access-code.js +28 -6
- package/lib/seam/access-codes/use-update-access-code.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.d.ts +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js +4 -4
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.d.ts +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js +4 -4
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.d.ts +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js +2 -2
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.d.ts +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js +2 -2
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.d.ts +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.js +2 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js +2 -2
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.d.ts +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +3 -4
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.d.ts +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.js +2 -2
- package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js +1 -0
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js.map +1 -1
- package/lib/seam/components/common-props.d.ts +1 -0
- package/lib/seam/components/common-props.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/lib/element.tsx +1 -0
- package/src/lib/seam/access-codes/use-update-access-code.ts +41 -6
- package/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx +16 -12
- package/src/lib/seam/components/AccessCodeTable/AccessCodeTable.tsx +4 -0
- package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx +2 -0
- package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.tsx +2 -0
- package/src/lib/seam/components/DeviceDetails/DeviceDetails.tsx +2 -0
- package/src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx +2 -0
- package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +16 -14
- package/src/lib/seam/components/DeviceTable/DeviceTable.tsx +2 -0
- package/src/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.tsx +1 -0
- package/src/lib/seam/components/common-props.tsx +1 -0
- package/src/lib/version.ts +1 -1
|
@@ -4,6 +4,8 @@ import {
|
|
|
4
4
|
useQueryClient,
|
|
5
5
|
} from '@tanstack/react-query'
|
|
6
6
|
import type {
|
|
7
|
+
AccessCode,
|
|
8
|
+
AccessCodesListResponse,
|
|
7
9
|
AccessCodeUpdateRequest,
|
|
8
10
|
AccessCodeUpdateResponse,
|
|
9
11
|
ActionAttempt,
|
|
@@ -35,12 +37,45 @@ export function useUpdateAccessCode(): UseMutationResult<
|
|
|
35
37
|
return await client.accessCodes.update(mutationParams)
|
|
36
38
|
},
|
|
37
39
|
onSuccess: (_data, variables) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
// There is no guarantee that the actual code has updated even if the
|
|
41
|
+
// request was succesful. To prevent stale data in the UI, the
|
|
42
|
+
// code below optimistically updates the data in cache.
|
|
43
|
+
|
|
44
|
+
queryClient.setQueryData<AccessCode | null>(
|
|
45
|
+
['access_codes', 'get', { access_code_id: variables.access_code_id }],
|
|
46
|
+
(accessCode) => {
|
|
47
|
+
if (accessCode == null) {
|
|
48
|
+
return
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
...accessCode,
|
|
53
|
+
code: variables.code ?? accessCode.code,
|
|
54
|
+
name: variables.name ?? accessCode.name,
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
queryClient.setQueryData<AccessCodesListResponse['access_codes']>(
|
|
60
|
+
['access_codes', 'list', { device_id: variables.device_id }],
|
|
61
|
+
(accessCodes) => {
|
|
62
|
+
if (accessCodes == null) {
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return accessCodes.map((accessCode) => {
|
|
67
|
+
if (accessCode.access_code_id === variables.access_code_id) {
|
|
68
|
+
return {
|
|
69
|
+
...accessCode,
|
|
70
|
+
code: variables.code ?? accessCode.code,
|
|
71
|
+
name: variables.name ?? accessCode.name,
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return accessCode
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
)
|
|
44
79
|
},
|
|
45
80
|
})
|
|
46
81
|
}
|
|
@@ -41,6 +41,7 @@ export function AccessCodeDetails({
|
|
|
41
41
|
disableEditAccessCode = false,
|
|
42
42
|
disableLockUnlock = false,
|
|
43
43
|
disableDeleteAccessCode = false,
|
|
44
|
+
disableResourceIds = false,
|
|
44
45
|
onBack,
|
|
45
46
|
className,
|
|
46
47
|
}: AccessCodeDetailsProps): JSX.Element | null {
|
|
@@ -64,6 +65,7 @@ export function AccessCodeDetails({
|
|
|
64
65
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
65
66
|
disableEditAccessCode={disableEditAccessCode}
|
|
66
67
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
68
|
+
disableResourceIds={disableResourceIds}
|
|
67
69
|
onBack={() => {
|
|
68
70
|
selectDevice(null)
|
|
69
71
|
}}
|
|
@@ -137,19 +139,21 @@ export function AccessCodeDetails({
|
|
|
137
139
|
</div>
|
|
138
140
|
)}
|
|
139
141
|
<div className='seam-details'>
|
|
140
|
-
|
|
141
|
-
<div className='seam-
|
|
142
|
-
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
142
|
+
{!disableResourceIds && (
|
|
143
|
+
<div className='seam-row'>
|
|
144
|
+
<div className='seam-heading'>{t.id}:</div>
|
|
145
|
+
<div className='seam-content seam-code-id'>
|
|
146
|
+
<span>{accessCode.access_code_id}</span>
|
|
147
|
+
<IconButton
|
|
148
|
+
onClick={() => {
|
|
149
|
+
void copyToClipboard(accessCode.access_code_id)
|
|
150
|
+
}}
|
|
151
|
+
>
|
|
152
|
+
<CopyIcon />
|
|
153
|
+
</IconButton>
|
|
154
|
+
</div>
|
|
151
155
|
</div>
|
|
152
|
-
|
|
156
|
+
)}
|
|
153
157
|
<div className='seam-row'>
|
|
154
158
|
<div className='seam-heading'>{t.created}:</div>
|
|
155
159
|
<div className='seam-content'>
|
|
@@ -86,6 +86,7 @@ export function AccessCodeTable({
|
|
|
86
86
|
disableEditAccessCode = false,
|
|
87
87
|
disableLockUnlock = false,
|
|
88
88
|
disableDeleteAccessCode = false,
|
|
89
|
+
disableResourceIds = false,
|
|
89
90
|
}: AccessCodeTableProps): JSX.Element {
|
|
90
91
|
useComponentTelemetry('AccessCodeTable')
|
|
91
92
|
|
|
@@ -146,6 +147,7 @@ export function AccessCodeTable({
|
|
|
146
147
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
147
148
|
disableEditAccessCode={disableEditAccessCode}
|
|
148
149
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
150
|
+
disableResourceIds={disableResourceIds}
|
|
149
151
|
onBack={() => {
|
|
150
152
|
setSelectedEditAccessCodeId(null)
|
|
151
153
|
}}
|
|
@@ -178,6 +180,7 @@ export function AccessCodeTable({
|
|
|
178
180
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
179
181
|
disableEditAccessCode={disableEditAccessCode}
|
|
180
182
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
183
|
+
disableResourceIds={disableResourceIds}
|
|
181
184
|
onBack={() => {
|
|
182
185
|
setSelectedViewAccessCodeId(null)
|
|
183
186
|
}}
|
|
@@ -195,6 +198,7 @@ export function AccessCodeTable({
|
|
|
195
198
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
196
199
|
disableEditAccessCode={disableEditAccessCode}
|
|
197
200
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
201
|
+
disableResourceIds={disableResourceIds}
|
|
198
202
|
onBack={toggleAddAccessCodeForm}
|
|
199
203
|
className={className}
|
|
200
204
|
onSuccess={() => {
|
package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx
CHANGED
|
@@ -35,6 +35,7 @@ export function ClimateSettingScheduleDetails({
|
|
|
35
35
|
className,
|
|
36
36
|
disableCreateAccessCode,
|
|
37
37
|
disableEditAccessCode,
|
|
38
|
+
disableResourceIds = false,
|
|
38
39
|
}: ClimateSettingScheduleDetailsProps): JSX.Element | null {
|
|
39
40
|
useComponentTelemetry('ClimateSettingScheduleDetails')
|
|
40
41
|
|
|
@@ -59,6 +60,7 @@ export function ClimateSettingScheduleDetails({
|
|
|
59
60
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
60
61
|
disableEditAccessCode={disableEditAccessCode}
|
|
61
62
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
63
|
+
disableResourceIds={disableResourceIds}
|
|
62
64
|
onBack={() => {
|
|
63
65
|
selectDevice(null)
|
|
64
66
|
}}
|
|
@@ -68,6 +68,7 @@ export function ClimateSettingScheduleTable({
|
|
|
68
68
|
className,
|
|
69
69
|
disableCreateAccessCode,
|
|
70
70
|
disableEditAccessCode,
|
|
71
|
+
disableResourceIds = false,
|
|
71
72
|
}: ClimateSettingScheduleTableProps): JSX.Element {
|
|
72
73
|
useComponentTelemetry('ClimateSettingScheduleTable')
|
|
73
74
|
|
|
@@ -118,6 +119,7 @@ export function ClimateSettingScheduleTable({
|
|
|
118
119
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
119
120
|
disableEditAccessCode={disableEditAccessCode}
|
|
120
121
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
122
|
+
disableResourceIds={disableResourceIds}
|
|
121
123
|
onBack={() => {
|
|
122
124
|
setSelectedViewClimateSettingScheduleId(null)
|
|
123
125
|
}}
|
|
@@ -20,6 +20,7 @@ export function DeviceDetails({
|
|
|
20
20
|
deviceId,
|
|
21
21
|
disableLockUnlock = false,
|
|
22
22
|
disableDeleteAccessCode = false,
|
|
23
|
+
disableResourceIds = false,
|
|
23
24
|
onBack,
|
|
24
25
|
className,
|
|
25
26
|
}: DeviceDetailsProps): JSX.Element | null {
|
|
@@ -36,6 +37,7 @@ export function DeviceDetails({
|
|
|
36
37
|
const props = {
|
|
37
38
|
disableLockUnlock,
|
|
38
39
|
disableDeleteAccessCode,
|
|
40
|
+
disableResourceIds,
|
|
39
41
|
onBack,
|
|
40
42
|
className,
|
|
41
43
|
}
|
|
@@ -28,6 +28,7 @@ export function LockDeviceDetails(
|
|
|
28
28
|
disableCreateAccessCode,
|
|
29
29
|
disableEditAccessCode,
|
|
30
30
|
disableDeleteAccessCode,
|
|
31
|
+
disableResourceIds,
|
|
31
32
|
onBack,
|
|
32
33
|
className,
|
|
33
34
|
} = props
|
|
@@ -55,6 +56,7 @@ export function LockDeviceDetails(
|
|
|
55
56
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
56
57
|
disableEditAccessCode={disableEditAccessCode}
|
|
57
58
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
59
|
+
disableResourceIds={disableResourceIds}
|
|
58
60
|
onBack={toggleAccessCodesOpen}
|
|
59
61
|
className={className}
|
|
60
62
|
/>
|
|
@@ -19,17 +19,16 @@ interface ThermostatDeviceDetailsProps extends CommonProps {
|
|
|
19
19
|
device: ThermostatDevice
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export function ThermostatDeviceDetails(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
export function ThermostatDeviceDetails({
|
|
23
|
+
device,
|
|
24
|
+
onBack,
|
|
25
|
+
className,
|
|
26
|
+
disableLockUnlock,
|
|
27
|
+
disableCreateAccessCode,
|
|
28
|
+
disableEditAccessCode,
|
|
29
|
+
disableDeleteAccessCode,
|
|
30
|
+
disableResourceIds = false,
|
|
31
|
+
}: ThermostatDeviceDetailsProps): JSX.Element | null {
|
|
33
32
|
const [climateSettingsOpen, setClimateSettingsOpen] = useState(false)
|
|
34
33
|
|
|
35
34
|
const { connectedAccount } = useConnectedAccount(device.connected_account_id)
|
|
@@ -42,10 +41,11 @@ export function ThermostatDeviceDetails(
|
|
|
42
41
|
return (
|
|
43
42
|
<NestedClimateSettingScheduleTable
|
|
44
43
|
deviceId={device.device_id}
|
|
45
|
-
disableLockUnlock={
|
|
44
|
+
disableLockUnlock={disableLockUnlock}
|
|
46
45
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
47
46
|
disableEditAccessCode={disableEditAccessCode}
|
|
48
|
-
disableDeleteAccessCode={
|
|
47
|
+
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
48
|
+
disableResourceIds={disableResourceIds}
|
|
49
49
|
onBack={() => {
|
|
50
50
|
setClimateSettingsOpen(false)
|
|
51
51
|
}}
|
|
@@ -142,7 +142,9 @@ export function ThermostatDeviceDetails(
|
|
|
142
142
|
device.connected_account_id
|
|
143
143
|
}
|
|
144
144
|
/>
|
|
145
|
-
|
|
145
|
+
{!disableResourceIds && (
|
|
146
|
+
<DetailRow label={t.deviceId} sublabel={device.device_id} />
|
|
147
|
+
)}
|
|
146
148
|
</DetailSection>
|
|
147
149
|
</DetailSectionGroup>
|
|
148
150
|
</div>
|
|
@@ -71,6 +71,7 @@ export function DeviceTable({
|
|
|
71
71
|
disableCreateAccessCode = false,
|
|
72
72
|
disableEditAccessCode = false,
|
|
73
73
|
disableDeleteAccessCode = false,
|
|
74
|
+
disableResourceIds = false,
|
|
74
75
|
onBack,
|
|
75
76
|
className,
|
|
76
77
|
}: DeviceTableProps = {}): JSX.Element {
|
|
@@ -110,6 +111,7 @@ export function DeviceTable({
|
|
|
110
111
|
disableCreateAccessCode={disableCreateAccessCode}
|
|
111
112
|
disableEditAccessCode={disableEditAccessCode}
|
|
112
113
|
disableDeleteAccessCode={disableDeleteAccessCode}
|
|
114
|
+
disableResourceIds={disableResourceIds}
|
|
113
115
|
onBack={() => {
|
|
114
116
|
setSelectedDeviceId(null)
|
|
115
117
|
}}
|
|
@@ -7,6 +7,7 @@ export interface RequiredCommonProps {
|
|
|
7
7
|
disableCreateAccessCode: boolean | undefined
|
|
8
8
|
disableEditAccessCode: boolean | undefined
|
|
9
9
|
disableLockUnlock: boolean | undefined
|
|
10
|
+
disableResourceIds: boolean | undefined
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export type CommonProps = Partial<RequiredCommonProps>
|
package/src/lib/version.ts
CHANGED