@seamapi/react 2.5.0 → 2.6.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.
- package/README.md +1 -1
- package/dist/elements.js +10947 -10603
- package/dist/elements.js.map +1 -1
- package/dist/index.css +39 -3
- package/dist/index.css.map +1 -1
- package/dist/index.min.css +1 -1
- package/dist/index.min.css.map +1 -1
- package/lib/dates.js.map +1 -1
- package/lib/icons/AccessCodeKey.js +1 -1
- package/lib/icons/AccessCodeKey.js.map +1 -1
- package/lib/icons/Add.js +1 -1
- package/lib/icons/Add.js.map +1 -1
- package/lib/icons/ArrowBack.js +1 -1
- package/lib/icons/ArrowBack.js.map +1 -1
- package/lib/icons/ArrowRestart.js +1 -1
- package/lib/icons/ArrowRestart.js.map +1 -1
- package/lib/icons/ArrowRight.js +1 -1
- package/lib/icons/ArrowRight.js.map +1 -1
- package/lib/icons/BatteryLevelCritical.js +1 -1
- package/lib/icons/BatteryLevelCritical.js.map +1 -1
- package/lib/icons/BatteryLevelFull.js +1 -1
- package/lib/icons/BatteryLevelFull.js.map +1 -1
- package/lib/icons/BatteryLevelHigh.js +1 -1
- package/lib/icons/BatteryLevelHigh.js.map +1 -1
- package/lib/icons/BatteryLevelLow.js +1 -1
- package/lib/icons/BatteryLevelLow.js.map +1 -1
- package/lib/icons/BatteryLevelWired.js +1 -1
- package/lib/icons/BatteryLevelWired.js.map +1 -1
- package/lib/icons/Bee.js +1 -1
- package/lib/icons/Bee.js.map +1 -1
- package/lib/icons/Check.js +1 -1
- package/lib/icons/Check.js.map +1 -1
- package/lib/icons/CheckBlack.js +1 -1
- package/lib/icons/CheckBlack.js.map +1 -1
- package/lib/icons/CheckGreen.js +1 -1
- package/lib/icons/CheckGreen.js.map +1 -1
- package/lib/icons/CheckboxBlank.js +1 -1
- package/lib/icons/CheckboxBlank.js.map +1 -1
- package/lib/icons/CheckboxFilled.js +1 -1
- package/lib/icons/CheckboxFilled.js.map +1 -1
- package/lib/icons/ChevronDown.js +1 -1
- package/lib/icons/ChevronDown.js.map +1 -1
- package/lib/icons/ChevronRight.js +1 -1
- package/lib/icons/ChevronRight.js.map +1 -1
- package/lib/icons/ChevronWide.js +1 -1
- package/lib/icons/ChevronWide.js.map +1 -1
- package/lib/icons/ClimateSettingSchedule.js +1 -1
- package/lib/icons/ClimateSettingSchedule.js.map +1 -1
- package/lib/icons/Close.js +1 -1
- package/lib/icons/Close.js.map +1 -1
- package/lib/icons/CloseWhite.js +1 -1
- package/lib/icons/CloseWhite.js.map +1 -1
- package/lib/icons/Copy.js +1 -1
- package/lib/icons/Copy.js.map +1 -1
- package/lib/icons/DotsEllipsisMore.js +1 -1
- package/lib/icons/DotsEllipsisMore.js.map +1 -1
- package/lib/icons/Edit.js +1 -1
- package/lib/icons/Edit.js.map +1 -1
- package/lib/icons/ExclamationCircle.js +1 -1
- package/lib/icons/ExclamationCircle.js.map +1 -1
- package/lib/icons/ExclamationCircleOutline.js +1 -1
- package/lib/icons/ExclamationCircleOutline.js.map +1 -1
- package/lib/icons/Fan.js +1 -1
- package/lib/icons/Fan.js.map +1 -1
- package/lib/icons/FanOutline.js +1 -1
- package/lib/icons/FanOutline.js.map +1 -1
- package/lib/icons/Info.js +1 -1
- package/lib/icons/Info.js.map +1 -1
- package/lib/icons/InfoDark.js +1 -1
- package/lib/icons/InfoDark.js.map +1 -1
- package/lib/icons/LockLocked.js +1 -1
- package/lib/icons/LockLocked.js.map +1 -1
- package/lib/icons/LockUnlocked.js +1 -1
- package/lib/icons/LockUnlocked.js.map +1 -1
- package/lib/icons/Off.js +1 -1
- package/lib/icons/Off.js.map +1 -1
- package/lib/icons/OnlineStatusAccountOffline.js +1 -1
- package/lib/icons/OnlineStatusAccountOffline.js.map +1 -1
- package/lib/icons/OnlineStatusDeviceOffline.js +1 -1
- package/lib/icons/OnlineStatusDeviceOffline.js.map +1 -1
- package/lib/icons/OnlineStatusOnline.js +1 -1
- package/lib/icons/OnlineStatusOnline.js.map +1 -1
- package/lib/icons/RadioChecked.js +1 -1
- package/lib/icons/RadioChecked.js.map +1 -1
- package/lib/icons/RadioUnchecked.js +1 -1
- package/lib/icons/RadioUnchecked.js.map +1 -1
- package/lib/icons/Seam.js +1 -1
- package/lib/icons/Seam.js.map +1 -1
- package/lib/icons/Search.js +1 -1
- package/lib/icons/Search.js.map +1 -1
- package/lib/icons/TemperatureAdd.js +1 -1
- package/lib/icons/TemperatureAdd.js.map +1 -1
- package/lib/icons/TemperatureSubtract.js +1 -1
- package/lib/icons/TemperatureSubtract.js.map +1 -1
- package/lib/icons/ThermostatCool.js +1 -1
- package/lib/icons/ThermostatCool.js.map +1 -1
- package/lib/icons/ThermostatCoolLarge.js +1 -1
- package/lib/icons/ThermostatCoolLarge.js.map +1 -1
- package/lib/icons/ThermostatHeat.js +1 -1
- package/lib/icons/ThermostatHeat.js.map +1 -1
- package/lib/icons/ThermostatHeatCool.js +1 -1
- package/lib/icons/ThermostatHeatCool.js.map +1 -1
- package/lib/icons/ThermostatHeatLarge.js +1 -1
- package/lib/icons/ThermostatHeatLarge.js.map +1 -1
- package/lib/icons/ThermostatOff.js +1 -1
- package/lib/icons/ThermostatOff.js.map +1 -1
- package/lib/icons/TriangleWarning.js +1 -1
- package/lib/icons/TriangleWarning.js.map +1 -1
- package/lib/icons/TriangleWarningOutline.js +1 -1
- package/lib/icons/TriangleWarningOutline.js.map +1 -1
- package/lib/seam/SeamProvider.js.map +1 -1
- package/lib/seam/access-codes/use-access-codes.js.map +1 -1
- package/lib/seam/access-codes/use-update-access-code.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDevice.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeHealthBar.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.d.ts +6 -0
- package/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.js +27 -0
- package/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.js.map +1 -0
- package/lib/seam/components/AccessCodeTable/AccessCodeMenu.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeRow.js +2 -2
- package/lib/seam/components/AccessCodeTable/AccessCodeRow.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/CodeDetails.js +1 -1
- package/lib/seam/components/AccessCodeTable/CodeDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +1 -1
- package/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.js.map +1 -1
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceHealthBar.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.d.ts +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.d.ts +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js +2 -2
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-model.js +5 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-model.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-models.js +5 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-models.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.d.ts +3 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js +14 -3
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-manufacturers.js.map +1 -1
- package/lib/seam/connect-webviews/use-create-connect-webview.js.map +1 -1
- package/lib/seam/devices/use-devices.js.map +1 -1
- package/lib/seam/devices/use-toggle-lock.js.map +1 -1
- package/lib/seam/error-handlers.js.map +1 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js.map +1 -1
- package/lib/seam/thermostats/use-cool-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-heat-cool-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-heat-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-set-thermostat-off.js.map +1 -1
- package/lib/seam/thermostats/use-update-fan-mode.js.map +1 -1
- package/lib/seam/thermostats/use-update-thermostat.js.map +1 -1
- package/lib/seam/use-seam-client.js.map +1 -1
- package/lib/set-point-bounds.js.map +1 -1
- package/lib/telemetry/TelemetryProvider.js.map +1 -1
- package/lib/telemetry/client.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeForm.js.map +1 -1
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +1 -1
- package/lib/ui/FormField.js.map +1 -1
- package/lib/ui/LoadingToast/LoadingToast.js.map +1 -1
- package/lib/ui/Menu/Menu.js.map +1 -1
- package/lib/ui/Menu/MenuItem.js.map +1 -1
- package/lib/ui/RadioField/Radio.js.map +1 -1
- package/lib/ui/RadioField/RadioField.js.map +1 -1
- package/lib/ui/Snackbar/Snackbar.js.map +1 -1
- package/lib/ui/TextField/TextField.js.map +1 -1
- package/lib/ui/TimeZonePicker/TimeZonePicker.js.map +1 -1
- package/lib/ui/Tooltip/Tooltip.js.map +1 -1
- package/lib/ui/device/BatteryStatus.js.map +1 -1
- package/lib/ui/device/LockStatus.js.map +1 -1
- package/lib/ui/device/OnlineStatus.js.map +1 -1
- package/lib/ui/layout/ContentHeader.js.map +1 -1
- package/lib/ui/thermostat/ClimateModeMenu.js.map +1 -1
- package/lib/ui/thermostat/TemperatureControlGroup.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +5 -5
- package/src/lib/icons/AccessCodeKey.tsx +1 -1
- package/src/lib/icons/Add.tsx +1 -1
- package/src/lib/icons/ArrowBack.tsx +1 -1
- package/src/lib/icons/ArrowRestart.tsx +1 -1
- package/src/lib/icons/ArrowRight.tsx +1 -1
- package/src/lib/icons/BatteryLevelCritical.tsx +1 -1
- package/src/lib/icons/BatteryLevelFull.tsx +1 -1
- package/src/lib/icons/BatteryLevelHigh.tsx +1 -1
- package/src/lib/icons/BatteryLevelLow.tsx +1 -1
- package/src/lib/icons/BatteryLevelWired.tsx +1 -1
- package/src/lib/icons/Bee.tsx +1 -1
- package/src/lib/icons/Check.tsx +1 -1
- package/src/lib/icons/CheckBlack.tsx +1 -1
- package/src/lib/icons/CheckGreen.tsx +1 -1
- package/src/lib/icons/CheckboxBlank.tsx +1 -1
- package/src/lib/icons/CheckboxFilled.tsx +1 -1
- package/src/lib/icons/ChevronDown.tsx +1 -1
- package/src/lib/icons/ChevronRight.tsx +1 -1
- package/src/lib/icons/ChevronWide.tsx +1 -1
- package/src/lib/icons/ClimateSettingSchedule.tsx +1 -1
- package/src/lib/icons/Close.tsx +1 -1
- package/src/lib/icons/CloseWhite.tsx +1 -1
- package/src/lib/icons/Copy.tsx +1 -1
- package/src/lib/icons/DotsEllipsisMore.tsx +1 -1
- package/src/lib/icons/Edit.tsx +1 -1
- package/src/lib/icons/ExclamationCircle.tsx +1 -1
- package/src/lib/icons/ExclamationCircleOutline.tsx +1 -1
- package/src/lib/icons/Fan.tsx +1 -1
- package/src/lib/icons/FanOutline.tsx +1 -1
- package/src/lib/icons/Info.tsx +1 -1
- package/src/lib/icons/InfoDark.tsx +1 -1
- package/src/lib/icons/LockLocked.tsx +1 -1
- package/src/lib/icons/LockUnlocked.tsx +1 -1
- package/src/lib/icons/Off.tsx +1 -1
- package/src/lib/icons/OnlineStatusAccountOffline.tsx +1 -1
- package/src/lib/icons/OnlineStatusDeviceOffline.tsx +1 -1
- package/src/lib/icons/OnlineStatusOnline.tsx +2 -2
- package/src/lib/icons/RadioChecked.tsx +1 -1
- package/src/lib/icons/RadioUnchecked.tsx +1 -1
- package/src/lib/icons/Seam.tsx +1 -2
- package/src/lib/icons/Search.tsx +1 -1
- package/src/lib/icons/TemperatureAdd.tsx +1 -1
- package/src/lib/icons/TemperatureSubtract.tsx +1 -1
- package/src/lib/icons/ThermostatCool.tsx +1 -1
- package/src/lib/icons/ThermostatCoolLarge.tsx +1 -1
- package/src/lib/icons/ThermostatHeat.tsx +1 -1
- package/src/lib/icons/ThermostatHeatCool.tsx +2 -2
- package/src/lib/icons/ThermostatHeatLarge.tsx +1 -1
- package/src/lib/icons/ThermostatOff.tsx +1 -1
- package/src/lib/icons/TriangleWarning.tsx +1 -1
- package/src/lib/icons/TriangleWarningOutline.tsx +2 -5
- package/src/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.tsx +65 -0
- package/src/lib/seam/components/AccessCodeTable/AccessCodeRow.tsx +10 -6
- package/src/lib/seam/components/AccessCodeTable/CodeDetails.tsx +2 -1
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +6 -0
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.element.ts +2 -0
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.tsx +6 -0
- package/src/lib/seam/components/SupportedDeviceTable/use-device-model.ts +5 -1
- package/src/lib/seam/components/SupportedDeviceTable/use-device-models.ts +5 -1
- package/src/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.ts +25 -8
- package/src/lib/version.ts +1 -1
- package/src/styles/_main.scss +2 -0
- package/src/styles/_seam-table.scss +18 -3
- package/src/styles/_visibility.scss +25 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { AccessCodeKeyIcon } from 'lib/icons/AccessCodeKey.js'
|
|
2
|
+
import { ExclamationCircleOutlineIcon } from 'lib/icons/ExclamationCircleOutline.js'
|
|
3
|
+
import { TriangleWarningOutlineIcon } from 'lib/icons/TriangleWarningOutline.js'
|
|
4
|
+
import type { UseAccessCodesData } from 'lib/seam/access-codes/use-access-codes.js'
|
|
5
|
+
|
|
6
|
+
export interface AccessCodeMainIconProps {
|
|
7
|
+
accessCode: UseAccessCodesData[number]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function AccessCodeMainIcon({
|
|
11
|
+
accessCode,
|
|
12
|
+
}: AccessCodeMainIconProps): JSX.Element {
|
|
13
|
+
const errorCount = accessCode.errors.length
|
|
14
|
+
const warningCount = accessCode.warnings.length
|
|
15
|
+
const isPlural = errorCount === 0 || errorCount > 1
|
|
16
|
+
const errorIconTitle = isPlural
|
|
17
|
+
? `${errorCount} ${t.codeIssues}`
|
|
18
|
+
: `${errorCount} ${t.codeIssue}`
|
|
19
|
+
const warningIconTitle = isPlural
|
|
20
|
+
? `${warningCount} ${t.codeIssues}`
|
|
21
|
+
: `${warningCount} ${t.codeIssue}`
|
|
22
|
+
|
|
23
|
+
if (errorCount > 0) {
|
|
24
|
+
return (
|
|
25
|
+
<>
|
|
26
|
+
<div
|
|
27
|
+
className='seam-issue-icon-wrap seam-md-invisible'
|
|
28
|
+
title={errorIconTitle}
|
|
29
|
+
>
|
|
30
|
+
<ExclamationCircleOutlineIcon />
|
|
31
|
+
</div>
|
|
32
|
+
<div className='seam-invisible seam-md-flex'>
|
|
33
|
+
<AccessCodeKeyIcon />
|
|
34
|
+
</div>
|
|
35
|
+
</>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (errorCount === 0 && warningCount > 0) {
|
|
40
|
+
return (
|
|
41
|
+
<>
|
|
42
|
+
<div
|
|
43
|
+
className='seam-issue-icon-wrap seam-md-invisible'
|
|
44
|
+
title={warningIconTitle}
|
|
45
|
+
>
|
|
46
|
+
<TriangleWarningOutlineIcon />
|
|
47
|
+
</div>
|
|
48
|
+
<div className='seam-invisible seam-md-flex'>
|
|
49
|
+
<AccessCodeKeyIcon />
|
|
50
|
+
</div>
|
|
51
|
+
</>
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<div className='seam-issue-icon-wrap'>
|
|
57
|
+
<AccessCodeKeyIcon />
|
|
58
|
+
</div>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const t = {
|
|
63
|
+
codeIssue: 'code issue',
|
|
64
|
+
codeIssues: 'code issues',
|
|
65
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AccessCodeKeyIcon } from 'lib/icons/AccessCodeKey.js'
|
|
2
1
|
import { ExclamationCircleOutlineIcon } from 'lib/icons/ExclamationCircleOutline.js'
|
|
3
2
|
import { TriangleWarningOutlineIcon } from 'lib/icons/TriangleWarningOutline.js'
|
|
4
3
|
import type { UseAccessCodesData } from 'lib/seam/access-codes/use-access-codes.js'
|
|
4
|
+
import { AccessCodeMainIcon } from 'lib/seam/components/AccessCodeTable/AccessCodeMainIcon.js'
|
|
5
5
|
import { AccessCodeMenu } from 'lib/seam/components/AccessCodeTable/AccessCodeMenu.js'
|
|
6
6
|
import { CodeDetails } from 'lib/seam/components/AccessCodeTable/CodeDetails.js'
|
|
7
7
|
import { TableCell } from 'lib/ui/Table/TableCell.js'
|
|
@@ -36,9 +36,7 @@ export function AccessCodeRow({
|
|
|
36
36
|
return (
|
|
37
37
|
<TableRow onClick={onClick}>
|
|
38
38
|
<TableCell className='seam-icon-cell'>
|
|
39
|
-
<
|
|
40
|
-
<AccessCodeKeyIcon />
|
|
41
|
-
</div>
|
|
39
|
+
<AccessCodeMainIcon accessCode={accessCode} />
|
|
42
40
|
</TableCell>
|
|
43
41
|
<TableCell className='seam-name-cell'>
|
|
44
42
|
<Title className='seam-truncated-text'>{accessCode.name}</Title>
|
|
@@ -46,12 +44,18 @@ export function AccessCodeRow({
|
|
|
46
44
|
</TableCell>
|
|
47
45
|
<TableCell className='seam-action-cell'>
|
|
48
46
|
{errorCount > 0 && (
|
|
49
|
-
<div
|
|
47
|
+
<div
|
|
48
|
+
className='seam-issue-icon-wrap seam-invisible seam-md-flex'
|
|
49
|
+
title={errorIconTitle}
|
|
50
|
+
>
|
|
50
51
|
<ExclamationCircleOutlineIcon />
|
|
51
52
|
</div>
|
|
52
53
|
)}
|
|
53
54
|
{errorCount === 0 && warningCount > 0 && (
|
|
54
|
-
<div
|
|
55
|
+
<div
|
|
56
|
+
className='seam-issue-icon-wrap seam-invisible seam-md-flex'
|
|
57
|
+
title={warningIconTitle}
|
|
58
|
+
>
|
|
55
59
|
<TriangleWarningOutlineIcon />
|
|
56
60
|
</div>
|
|
57
61
|
)}
|
|
@@ -17,7 +17,8 @@ export function CodeDetails(props: { accessCode: AccessCode }): JSX.Element {
|
|
|
17
17
|
<DotDivider />
|
|
18
18
|
<Duration accessCode={accessCode} />
|
|
19
19
|
<DotDivider />
|
|
20
|
-
{t.code}:
|
|
20
|
+
<span className='seam-invisible seam-md-block'>{t.code}: </span>
|
|
21
|
+
{accessCode.code}
|
|
21
22
|
</div>
|
|
22
23
|
)
|
|
23
24
|
}
|
|
@@ -15,6 +15,8 @@ interface SupportedDeviceContentProps {
|
|
|
15
15
|
filters: DeviceModelFilters
|
|
16
16
|
manufacturers: string[] | null
|
|
17
17
|
excludedManufacturers: string[]
|
|
18
|
+
includeIf: string[] | null
|
|
19
|
+
excludeIf: string[]
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export function SupportedDeviceContent({
|
|
@@ -23,6 +25,8 @@ export function SupportedDeviceContent({
|
|
|
23
25
|
filters,
|
|
24
26
|
manufacturers,
|
|
25
27
|
excludedManufacturers,
|
|
28
|
+
includeIf,
|
|
29
|
+
excludeIf,
|
|
26
30
|
}: SupportedDeviceContentProps): JSX.Element | null {
|
|
27
31
|
const { deviceModels, isLoading, isError, refetch } = useFilteredDeviceModels(
|
|
28
32
|
{
|
|
@@ -30,6 +34,8 @@ export function SupportedDeviceContent({
|
|
|
30
34
|
filters,
|
|
31
35
|
manufacturers,
|
|
32
36
|
excludedManufacturers,
|
|
37
|
+
includeIf,
|
|
38
|
+
excludeIf,
|
|
33
39
|
}
|
|
34
40
|
)
|
|
35
41
|
|
|
@@ -8,6 +8,8 @@ export const props: ElementProps<SupportedDeviceTableProps> = {
|
|
|
8
8
|
disableFilter: 'boolean',
|
|
9
9
|
manufacturers: 'array',
|
|
10
10
|
excludedManufacturers: 'array',
|
|
11
|
+
includeIf: 'array',
|
|
12
|
+
excludeIf: 'array',
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export { SupportedDeviceTable as Component } from './SupportedDeviceTable.js'
|
|
@@ -15,6 +15,8 @@ export interface SupportedDeviceTableProps extends CommonProps {
|
|
|
15
15
|
disableFilter?: boolean
|
|
16
16
|
manufacturers?: string[] | null
|
|
17
17
|
excludedManufacturers?: string[]
|
|
18
|
+
includeIf?: string[] | null
|
|
19
|
+
excludeIf?: string[]
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export const NestedSupportedDeviceTable =
|
|
@@ -24,6 +26,8 @@ export function SupportedDeviceTable({
|
|
|
24
26
|
disableFilter = false,
|
|
25
27
|
manufacturers = null,
|
|
26
28
|
excludedManufacturers = [],
|
|
29
|
+
includeIf = null,
|
|
30
|
+
excludeIf = [],
|
|
27
31
|
className,
|
|
28
32
|
}: SupportedDeviceTableProps = {}): JSX.Element {
|
|
29
33
|
useComponentTelemetry('SupportedDeviceTable')
|
|
@@ -59,6 +63,8 @@ export function SupportedDeviceTable({
|
|
|
59
63
|
filters={filters}
|
|
60
64
|
manufacturers={manufacturers}
|
|
61
65
|
excludedManufacturers={excludedManufacturers}
|
|
66
|
+
includeIf={includeIf}
|
|
67
|
+
excludeIf={excludeIf}
|
|
62
68
|
/>
|
|
63
69
|
</div>
|
|
64
70
|
)
|
|
@@ -37,7 +37,11 @@ export function useDeviceModel(
|
|
|
37
37
|
},
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
return {
|
|
40
|
+
return {
|
|
41
|
+
...rest,
|
|
42
|
+
// @ts-expect-error: Upstream mismatch between type and route type.
|
|
43
|
+
deviceModel: data,
|
|
44
|
+
}
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
type DeviceModelsGetParams = RouteRequestParams<'/v1/device_models/get'>
|
|
@@ -49,7 +49,11 @@ export function useDeviceModels(
|
|
|
49
49
|
},
|
|
50
50
|
})
|
|
51
51
|
|
|
52
|
-
return {
|
|
52
|
+
return {
|
|
53
|
+
...rest,
|
|
54
|
+
// @ts-expect-error: Upstream mismatch between type and route type.
|
|
55
|
+
deviceModels: data,
|
|
56
|
+
}
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
type DeviceModelsListParams = RouteRequestParams<'/v1/device_models/list'>
|
|
@@ -13,17 +13,30 @@ export interface DeviceModelFilters {
|
|
|
13
13
|
export const useFilteredDeviceModels = ({
|
|
14
14
|
filterValue,
|
|
15
15
|
filters,
|
|
16
|
+
includeIf,
|
|
17
|
+
excludeIf,
|
|
16
18
|
...manufacturersParams
|
|
17
19
|
}: {
|
|
18
20
|
filterValue: string
|
|
19
21
|
filters: DeviceModelFilters
|
|
20
22
|
manufacturers: string[] | null
|
|
21
23
|
excludedManufacturers: string[]
|
|
24
|
+
includeIf: string[] | null
|
|
25
|
+
excludeIf: string[]
|
|
22
26
|
}): ReturnType<typeof useDeviceModels> => {
|
|
23
27
|
const { manufacturers } = useFilteredManufacturers(manufacturersParams)
|
|
24
28
|
|
|
25
29
|
const params: UseDeviceModelsParams = {}
|
|
26
30
|
|
|
31
|
+
if (excludeIf.length > 0) {
|
|
32
|
+
params.exclude_if = excludeIf
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// UPSTREAM: API does not parse zero-length arrays correctly.
|
|
36
|
+
if (includeIf != null && includeIf.length > 0) {
|
|
37
|
+
params.include_if = includeIf
|
|
38
|
+
}
|
|
39
|
+
|
|
27
40
|
if (filterValue.trim() !== '') {
|
|
28
41
|
params.text_search = filterValue.trim()
|
|
29
42
|
}
|
|
@@ -50,13 +63,17 @@ export const useFilteredDeviceModels = ({
|
|
|
50
63
|
|
|
51
64
|
return {
|
|
52
65
|
...rest,
|
|
53
|
-
deviceModels:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
deviceModels:
|
|
67
|
+
// UPSTREAM: API does not parse zero-length arrays correctly.
|
|
68
|
+
includeIf?.length === 0
|
|
69
|
+
? []
|
|
70
|
+
: deviceModels?.filter(
|
|
71
|
+
(deviceModel) =>
|
|
72
|
+
manufacturers?.some(
|
|
73
|
+
(manufacturer) =>
|
|
74
|
+
deviceModel.manufacturer.manufacturer_id ===
|
|
75
|
+
manufacturer.manufacturer_id
|
|
76
|
+
)
|
|
77
|
+
),
|
|
61
78
|
}
|
|
62
79
|
}
|
package/src/lib/version.ts
CHANGED
package/src/styles/_main.scss
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
@use './alert';
|
|
6
6
|
@use './buttons';
|
|
7
7
|
@use './layout';
|
|
8
|
+
@use './visibility';
|
|
8
9
|
@use './loading_toast';
|
|
9
10
|
@use './colors';
|
|
10
11
|
@use './icons';
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
@include form-field.all;
|
|
42
43
|
@include buttons.all;
|
|
43
44
|
@include layout.all;
|
|
45
|
+
@include visibility.all;
|
|
44
46
|
@include loading_toast.all;
|
|
45
47
|
@include icons.all;
|
|
46
48
|
@include menus.all;
|
|
@@ -27,11 +27,17 @@
|
|
|
27
27
|
justify-content: center;
|
|
28
28
|
|
|
29
29
|
> div {
|
|
30
|
-
width:
|
|
30
|
+
width: 32px;
|
|
31
31
|
height: 40px;
|
|
32
32
|
display: flex;
|
|
33
33
|
align-items: center;
|
|
34
34
|
justify-content: center;
|
|
35
|
+
margin-right: 4px;
|
|
36
|
+
|
|
37
|
+
@media only screen and (width >= 768px) {
|
|
38
|
+
width: 40px;
|
|
39
|
+
margin-right: 4px;
|
|
40
|
+
}
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
|
|
@@ -48,10 +54,15 @@
|
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
.seam-details {
|
|
51
|
-
font-size:
|
|
57
|
+
font-size: 12px;
|
|
52
58
|
line-height: 134%;
|
|
53
59
|
color: colors.$text-gray-1;
|
|
54
60
|
display: flex;
|
|
61
|
+
flex-wrap: wrap;
|
|
62
|
+
|
|
63
|
+
@media only screen and (width >= 768px) {
|
|
64
|
+
font-size: 14px;
|
|
65
|
+
}
|
|
55
66
|
|
|
56
67
|
.seam-device-name {
|
|
57
68
|
max-width: 190px;
|
|
@@ -66,10 +77,14 @@
|
|
|
66
77
|
}
|
|
67
78
|
|
|
68
79
|
.seam-action-cell {
|
|
69
|
-
margin-right:
|
|
80
|
+
margin-right: 8px;
|
|
70
81
|
display: flex;
|
|
71
82
|
align-items: center;
|
|
72
83
|
justify-content: center;
|
|
84
|
+
|
|
85
|
+
@media only screen and (width >= 768px) {
|
|
86
|
+
margin-right: 12px;
|
|
87
|
+
}
|
|
73
88
|
}
|
|
74
89
|
|
|
75
90
|
.seam-issue-icon-wrap {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
3
|
+
@mixin all {
|
|
4
|
+
.seam-invisible {
|
|
5
|
+
display: none !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.seam-md-flex {
|
|
9
|
+
@media only screen and (width >= 768px) {
|
|
10
|
+
display: flex !important;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.seam-md-block {
|
|
15
|
+
@media only screen and (width >= 768px) {
|
|
16
|
+
display: block !important;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.seam-md-invisible {
|
|
21
|
+
@media only screen and (width >= 768px) {
|
|
22
|
+
display: none !important;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|