Skip to content

Commit a426132

Browse files
xplatoseambot
andauthored
feat: Add Noise Sensors to DeviceTable (#630)
* feat: Add Noise Sensors to `DeviceTable` * ci: Format code * Add `ContentHeader` * ci: Format code * Add `image_url` --------- Co-authored-by: Seam Bot <[email protected]>
1 parent df690b1 commit a426132

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

.storybook/seed-fake.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,8 @@ export const seedFake = (db) => {
480480
manufacturer_display_name: 'NoiseAware',
481481
display_name: 'Indoor Sensor',
482482
},
483+
image_url:
484+
'https://connect.getseam.com/assets/images/devices/noiseaware_indoor_sensor_front.png',
483485
},
484486
errors: [],
485487
})

src/lib/seam/components/DeviceDetails/NoiseSensorDeviceDetails.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
import classNames from 'classnames'
12
import type { NoiseSensorDevice } from 'seamapi'
23

34
import type { NestedSpecificDeviceDetailsProps } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
45
import { DeviceInfo } from 'lib/seam/components/DeviceDetails/DeviceInfo.js'
56
import { DeviceModel } from 'lib/seam/components/DeviceDetails/DeviceModel.js'
67
import { DeviceImage } from 'lib/ui/device/DeviceImage.js'
78
import { OnlineStatus } from 'lib/ui/device/OnlineStatus.js'
9+
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
810
import { NoiseThresholdsList } from 'lib/ui/noise-sensor/NoiseThresholdsList.js'
911

1012
interface NoiseSensorDeviceDetailsProps
@@ -16,9 +18,13 @@ export function NoiseSensorDeviceDetails({
1618
device,
1719
disableConnectedAccountInformation,
1820
disableResourceIds,
21+
onBack,
22+
className,
1923
}: NoiseSensorDeviceDetailsProps): JSX.Element | null {
2024
return (
21-
<div className='seam-device-details'>
25+
<div className={classNames('seam-device-details', className)}>
26+
<ContentHeader title={t.noiseSensor} onBack={onBack} />
27+
2228
<div className='seam-body'>
2329
<div className='seam-summary'>
2430
<div className='seam-content'>

src/lib/seam/components/DeviceTable/DeviceTable.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import classNames from 'classnames'
22
import { useCallback, useMemo, useState } from 'react'
3-
import { type CommonDevice, isLockDevice, isThermostatDevice } from 'seamapi'
3+
import {
4+
type CommonDevice,
5+
isLockDevice,
6+
isNoiseSensorDevice,
7+
isThermostatDevice,
8+
} from 'seamapi'
49

510
import { compareByCreatedAtDesc } from 'lib/dates.js'
611
import {
@@ -87,7 +92,12 @@ export function DeviceTable({
8792
const filteredDevices = useMemo(
8893
() =>
8994
devices
90-
?.filter((device) => isLockDevice(device) || isThermostatDevice(device))
95+
?.filter(
96+
(device) =>
97+
isLockDevice(device) ||
98+
isThermostatDevice(device) ||
99+
isNoiseSensorDevice(device)
100+
)
91101
?.filter((device) => deviceFilter(device, searchInputValue))
92102
?.sort(deviceComparator) ?? [],
93103
[devices, searchInputValue, deviceFilter, deviceComparator]

0 commit comments

Comments
 (0)