From 4f1de384e4095cc4fbf44090dc7dca826683435f Mon Sep 17 00:00:00 2001 From: Carter Date: Tue, 25 Feb 2025 09:06:55 -0600 Subject: [PATCH] devices list shows temp and humidity of attached plenum if it's there --- package-lock.json | 2 +- src/pages/DeviceComponent.tsx | 2 +- src/pages/Devices.tsx | 49 ++++++++++++++++++++++++++++++----- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index dca1069..fb008eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4549,7 +4549,7 @@ }, "node_modules/protobuf-ts": { "version": "1.0.0", - "resolved": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#0a0a2671905de63ec02ff13b4a060b2b7a895e37", + "resolved": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#86c8ea9c667b2d01c56e0af05f77c1326f8e08fa", "dependencies": { "protobufjs": "^6.8.8" } diff --git a/src/pages/DeviceComponent.tsx b/src/pages/DeviceComponent.tsx index 998bdcd..9bff22a 100644 --- a/src/pages/DeviceComponent.tsx +++ b/src/pages/DeviceComponent.tsx @@ -459,7 +459,7 @@ export default function DeviceComponent() { useEffect(() => { load() - }, []) + }, [page, pageSize]) const columns = (): Column[] => { return [ diff --git a/src/pages/Devices.tsx b/src/pages/Devices.tsx index e307771..d54b9ef 100644 --- a/src/pages/Devices.tsx +++ b/src/pages/Devices.tsx @@ -1,5 +1,5 @@ import { DeveloperBoard as ProvisionIcon, LibraryAdd as CreateGroupIcon } from "@mui/icons-material"; -import { Box, Chip, CircularProgress, IconButton, Skeleton, Tab, Tabs, Theme, Tooltip, Typography } from "@mui/material"; +import { Box, Chip, CircularProgress, Grid2, IconButton, Skeleton, Tab, Tabs, Theme, Tooltip, Typography } from "@mui/material"; import { blue, green } from "@mui/material/colors"; import { makeStyles } from "@mui/styles"; import ResponsiveTable, { Column } from "common/ResponsiveTable"; @@ -18,6 +18,7 @@ import SmartBreadcrumb from "common/SmartBreadcrumb"; import GroupActions from "group/GroupActions"; // import CircleGraphIcon from "common/CircleGraphIcon"; import DevicesSummary from "device/DevicesSummary"; +import MeasurementSummary from "component/MeasurementSummary"; const useStyles = makeStyles((theme: Theme) => { return ({ @@ -79,6 +80,7 @@ export default function Devices() { const [isProvisionDialogOpen, setIsProvisionDialogOpen] = useState(false); const [stats, setStats] = useState(pond.DeviceStatistics.create()) const [loadingStats, setLoadingStats] = useState(false) + const [hasPlenums, setHasPlenums] = useState(false) const [groupsLoading, setGroupsLoading] = useState(false) const [groups, setGroups] = useState([]); @@ -196,6 +198,10 @@ export default function Devices() { ).then(resp => { let newDevices: Device[] = [] resp.data.devices.forEach(device => { + console.log(device.status?.plenum?.temperature) + if (device.status?.plenum?.temperature) { + setHasPlenums(true) + } newDevices.push(Device.create(device)) }) setDevices(newDevices) @@ -260,10 +266,10 @@ export default function Devices() { }; const columns = (): Column[] => { - return [ + let columns = [ { title: "State", - render: (device) => { + render: (device: Device) => { const status = device.status ?? pond.DeviceStatus.create() const deviceStateHelper = getDeviceStateHelper(status.state); return ( @@ -275,13 +281,13 @@ export default function Devices() { }, { title: "ID", - render: device => + render: (device: Device) => {device.settings?.deviceId} }, { title: "Device", - render: (device) => { + render: (device: Device) => { return ( { + render: (device: Device) => { const description = device.settings?.description ?? "" return ( @@ -310,6 +316,37 @@ export default function Devices() { } }, ] + if (hasPlenums) { + columns.push({ + title: "Plenum", + render: (device: Device) => { + if (device.status.plenum?.temperature) { + return ( + + + + {device.status.plenum.temperature} + + + + + {device.status.plenum.humidity} + + + + + ) + } else { + return ( + + No Data + + ) + } + } + }) + } + return columns } const provisionButton= () => {