From 3624c091028a4f4646de1db7fa45b93f4196f53a Mon Sep 17 00:00:00 2001 From: Nuwan Date: Sun, 8 Feb 2026 19:26:50 +0530 Subject: [PATCH] feat(20-01): add removeVuState function to useVuHelpers - Add removeVuState callback to clean up vuStates entries - Export removeVuState alongside updateVuState - Uses functional setState for React state batching compatibility - Maintains immutability by creating shallow copy before deletion Co-Authored-By: Claude Opus 4.5 --- jam-ui/src/hooks/useVuHelpers.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jam-ui/src/hooks/useVuHelpers.js b/jam-ui/src/hooks/useVuHelpers.js index 41006f227..8c2445973 100644 --- a/jam-ui/src/hooks/useVuHelpers.js +++ b/jam-ui/src/hooks/useVuHelpers.js @@ -103,6 +103,14 @@ export default function useVuHelpers() { })); }, []); + const removeVuState = useCallback((mixerId) => { + setVuStates(prev => { + const newState = { ...prev }; + delete newState[mixerId]; + return newState; + }); + }, []); + const updateVU3 = useCallback( (mixer, leftValue, leftClipping, rightValue, rightClipping) => { const fqId = createQualifiedId(mixer); @@ -175,6 +183,7 @@ export default function useVuHelpers() { // React-like components and functions VuMeter: VuMeterComponent, updateVuState, + removeVuState, vuStates, // Legacy functions for backward compatibility