From 8fcb8e54f71870d114a88a5718a99a5e9c1109da Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:38:11 -0500 Subject: [PATCH] fix websocket from spreading stale state (#14466) --- web/src/api/ws.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/web/src/api/ws.tsx b/web/src/api/ws.tsx index 2e083cf83..b0c89d5dd 100644 --- a/web/src/api/ws.tsx +++ b/web/src/api/ws.tsx @@ -65,7 +65,10 @@ function useValue(): useValueReturn { : "OFF"; }); - setWsState({ ...wsState, ...cameraStates }); + setWsState((prevState) => ({ + ...prevState, + ...cameraStates, + })); setHasCameraState(true); // we only want this to run initially when the config is loaded // eslint-disable-next-line react-hooks/exhaustive-deps @@ -77,7 +80,10 @@ function useValue(): useValueReturn { const data: Update = JSON.parse(event.data); if (data) { - setWsState({ ...wsState, [data.topic]: data.payload }); + setWsState((prevState) => ({ + ...prevState, + [data.topic]: data.payload, + })); } }, onOpen: () => {