From 6b5b0990bb39a85fc6dcfc50902d47cd8c897bd1 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Thu, 5 Mar 2026 17:51:46 +0530 Subject: [PATCH] refactor(29-01): memoize MixersContext provider value - Add useMemo wrapper around mixerHelper value - Prevents new object creation on every render - Depends on stable mixerHelper (from Task 1a) - Context consumers now only re-render when data actually changes This eliminates cascading re-renders when unrelated state updates occur. Co-Authored-By: Claude Opus 4.5 --- jam-ui/src/context/MixersContext.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jam-ui/src/context/MixersContext.js b/jam-ui/src/context/MixersContext.js index 37d3dbd97..44a082bb3 100644 --- a/jam-ui/src/context/MixersContext.js +++ b/jam-ui/src/context/MixersContext.js @@ -1,4 +1,4 @@ -import React, { createContext, useContext } from 'react'; +import React, { createContext, useContext, useMemo } from 'react'; import useMixerHelper from '../hooks/useMixerHelper.js'; const MixersContext = createContext(); @@ -6,8 +6,11 @@ const MixersContext = createContext(); export const MixersProvider = ({ children }) => { const mixerHelper = useMixerHelper(); + // Memoize context value to prevent unnecessary re-renders of consumers + const value = useMemo(() => mixerHelper, [mixerHelper]); + return ( - + {children} );