From 4546796db9d35bc5bfd66462ecea74f287be9121 Mon Sep 17 00:00:00 2001 From: Carter Date: Fri, 6 Mar 2026 13:05:30 -0600 Subject: [PATCH] guarding device web socket a little better --- src/pages/Device.tsx | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/pages/Device.tsx b/src/pages/Device.tsx index 0fb59a9..db9914e 100644 --- a/src/pages/Device.tsx +++ b/src/pages/Device.tsx @@ -203,10 +203,24 @@ export default function DevicePage() { // --- Real-time device updates (optional) --- // Updates device-level info (name, status, lastActive, etc.) - useWebSocket({ - path: `/v1/live/devices/${deviceID}`, - parse: (e) => Device.any(JSON.parse(e.data)), + useWebSocket({ + path: `/live/devices/${deviceID}`, + parse: (e) => { + try { + const raw = JSON.parse(e.data); + const dev = Device.any(raw); + if (!dev?.settings) { + console.warn("[ws] received device without settings:", raw); + return null; + } + return dev; + } catch (err) { + console.warn("[ws] failed to parse device:", err); + return null; + } + }, onMessage: (updatedDevice) => { + if (!updatedDevice) return; setDevice(updatedDevice); }, token,