From 8ec3214289d656df418e91db6ce9bcc4844b7774 Mon Sep 17 00:00:00 2001 From: "Tristan B." Date: Wed, 12 Jun 2024 10:40:06 -0600 Subject: [PATCH 1/3] feat: Display noise level in red if currently triggering --- .storybook/seed-fake.js | 1 + assets/icons/noise-levels-red.svg | 6 +++++ src/lib/icons/NoiseLevelsRed.tsx | 33 ++++++++++++++++++++++++++ src/lib/ui/device/NoiseLevelStatus.tsx | 15 ++++++++++-- 4 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 assets/icons/noise-levels-red.svg create mode 100644 src/lib/icons/NoiseLevelsRed.tsx diff --git a/.storybook/seed-fake.js b/.storybook/seed-fake.js index 9e7f05f5b..48a96141a 100644 --- a/.storybook/seed-fake.js +++ b/.storybook/seed-fake.js @@ -489,6 +489,7 @@ export const seedFake = (db) => { device_name: 'Living room', device_id: 'noiseaware_123', }, + currently_triggering_noise_threshold_ids: [] }, errors: [], }) diff --git a/assets/icons/noise-levels-red.svg b/assets/icons/noise-levels-red.svg new file mode 100644 index 000000000..8e73a3ff8 --- /dev/null +++ b/assets/icons/noise-levels-red.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lib/icons/NoiseLevelsRed.tsx b/src/lib/icons/NoiseLevelsRed.tsx new file mode 100644 index 000000000..2daeae137 --- /dev/null +++ b/src/lib/icons/NoiseLevelsRed.tsx @@ -0,0 +1,33 @@ +/* + * Automatically generated by SVGR from assets/icons/*.svg. + * Do not edit this file or add other components to this directory. + */ +import type { SVGProps } from 'react' +export function NoiseLevelsRedIcon( + props: SVGProps +): JSX.Element { + return ( + + + + + + ) +} diff --git a/src/lib/ui/device/NoiseLevelStatus.tsx b/src/lib/ui/device/NoiseLevelStatus.tsx index 75f7c3d1f..631ad5f6b 100644 --- a/src/lib/ui/device/NoiseLevelStatus.tsx +++ b/src/lib/ui/device/NoiseLevelStatus.tsx @@ -1,6 +1,8 @@ import type { NoiseSensorDevice } from 'seamapi' import { NoiseLevelsIcon } from 'lib/icons/NoiseLevels.js' +import { NoiseLevelsRedIcon } from 'lib/icons/NoiseLevelsRed.js' +import classNames from 'classnames' interface NoiseLevelStatusProps { device: NoiseSensorDevice @@ -9,13 +11,21 @@ interface NoiseLevelStatusProps { export function NoiseLevelStatus({ device, }: NoiseLevelStatusProps): JSX.Element { + const isActivated = + device.properties.currently_triggering_noise_threshold_ids?.length <= 0 + return ( <> {t.noiseLevel}:
- - {getNoiseLevel(device)} + {isActivated ? : } + + {getNoiseLevel(device)} + {isActivated && ` (${t.noisy})`} +
) @@ -55,4 +65,5 @@ const t = { unknown: 'Unknown', decibel: 'dB', noiseAwareDefault: '0-40 dB', + noisy: 'noisy', } From a7612de7bea422079db1c225faedb876b0b63e95 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 12 Jun 2024 16:41:21 +0000 Subject: [PATCH 2/3] ci: Format code --- .storybook/seed-fake.js | 2 +- src/lib/ui/device/NoiseLevelStatus.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.storybook/seed-fake.js b/.storybook/seed-fake.js index 48a96141a..8e07c12b5 100644 --- a/.storybook/seed-fake.js +++ b/.storybook/seed-fake.js @@ -489,7 +489,7 @@ export const seedFake = (db) => { device_name: 'Living room', device_id: 'noiseaware_123', }, - currently_triggering_noise_threshold_ids: [] + currently_triggering_noise_threshold_ids: [], }, errors: [], }) diff --git a/src/lib/ui/device/NoiseLevelStatus.tsx b/src/lib/ui/device/NoiseLevelStatus.tsx index 631ad5f6b..c75d55659 100644 --- a/src/lib/ui/device/NoiseLevelStatus.tsx +++ b/src/lib/ui/device/NoiseLevelStatus.tsx @@ -1,8 +1,8 @@ +import classNames from 'classnames' import type { NoiseSensorDevice } from 'seamapi' import { NoiseLevelsIcon } from 'lib/icons/NoiseLevels.js' import { NoiseLevelsRedIcon } from 'lib/icons/NoiseLevelsRed.js' -import classNames from 'classnames' interface NoiseLevelStatusProps { device: NoiseSensorDevice From c9e10e75c276e2181dc2879a122a6ff84bed56a5 Mon Sep 17 00:00:00 2001 From: "Tristan B." Date: Thu, 13 Jun 2024 10:49:59 -0600 Subject: [PATCH 3/3] Update condition --- .storybook/seed-fake.js | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- src/lib/ui/device/NoiseLevelStatus.tsx | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.storybook/seed-fake.js b/.storybook/seed-fake.js index 48a96141a..5d188a258 100644 --- a/.storybook/seed-fake.js +++ b/.storybook/seed-fake.js @@ -485,7 +485,7 @@ export const seedFake = (db) => { noiseaware_metadata: { device_model: 'indoor', noise_level_nrs: 1, - noise_level_decibel: 42, + noise_level_decibel: 80, device_name: 'Living room', device_id: 'noiseaware_123', }, diff --git a/package-lock.json b/package-lock.json index 80d95d744..abfa1c3c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "luxon": "^3.3.0", "queue": "^7.0.0", "react-hook-form": "^7.46.1", - "seamapi": "^8.22.1", + "seamapi": "^8.24.0", "uuid": "^9.0.0", "zoned-time": "^1.1.2" }, @@ -20462,9 +20462,9 @@ "dev": true }, "node_modules/seamapi": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/seamapi/-/seamapi-8.22.1.tgz", - "integrity": "sha512-uUT6KewWj+y5tn5nS0UlgMtfZyp9tdD/z45PlvEuTnY6/qA1gL6PvlvKi5aNYomr5sziQtfNCrKcLnYDotebPg==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/seamapi/-/seamapi-8.24.0.tgz", + "integrity": "sha512-WP115PUw5YN9p804boU/kqAAr4GfccJtrRVB6gTeZA1l1Lx5IAL/uTVKoP9uPRSOK6CBOaogO1ffXTEXDj/QmA==", "dependencies": { "axios": "0.25.0", "axios-retry": "3.2.5", diff --git a/package.json b/package.json index df7496338..e820317c7 100644 --- a/package.json +++ b/package.json @@ -132,7 +132,7 @@ "luxon": "^3.3.0", "queue": "^7.0.0", "react-hook-form": "^7.46.1", - "seamapi": "^8.22.1", + "seamapi": "^8.24.0", "uuid": "^9.0.0", "zoned-time": "^1.1.2" }, diff --git a/src/lib/ui/device/NoiseLevelStatus.tsx b/src/lib/ui/device/NoiseLevelStatus.tsx index 631ad5f6b..b6b96e1f4 100644 --- a/src/lib/ui/device/NoiseLevelStatus.tsx +++ b/src/lib/ui/device/NoiseLevelStatus.tsx @@ -12,7 +12,8 @@ export function NoiseLevelStatus({ device, }: NoiseLevelStatusProps): JSX.Element { const isActivated = - device.properties.currently_triggering_noise_threshold_ids?.length <= 0 + (device?.properties?.currently_triggering_noise_threshold_ids ?? []) + ?.length > 0 return ( <>