revert(31,32): restore pre-optimization state to fix VU/slider perf

Phase 31 selector optimization and Phase 32 state update changes
caused VU meters to animate slowly and volume sliders to be
unresponsive. Reverted all affected files to pre-Phase-31 state.

Files reverted:
- useMixerHelper.js: back to individual selectors (no shallowEqual)
- mixersSlice.js: removed composed selectors
- JKSessionScreen.js: pre-Phase-32 state
- useSessionModel.js: pre-Phase-32 debounce changes

Performance issues resolved:
- VU meter animations now smooth
- Volume sliders respond immediately

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Nuwan 2026-03-06 09:52:28 +05:30
parent be7b219525
commit c13bc73806
4 changed files with 1401 additions and 1753 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
import { createSlice, createSelector } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
// Core mixer collections
@ -313,69 +313,3 @@ export const selectMixerPairByResourceId = (resourceId) => (state) => {
export const selectMixerPairByTrackId = (trackId) => (state) => {
return state.mixers.mixersByTrackId[trackId];
};
// Composed memoized selectors for useMixerHelper optimization
// These group related data that's typically used together
export const selectCoreMixerState = createSelector(
[selectChatMixer, selectBroadcastMixer, selectRecordingMixer],
(chatMixer, broadcastMixer, recordingMixer) => ({
chatMixer,
broadcastMixer,
recordingMixer
})
);
export const selectTrackMixerState = createSelector(
[
selectRecordingTrackMixers,
selectBackingTrackMixers,
selectJamTrackMixers,
selectMetronomeTrackMixers,
selectAdhocTrackMixers
],
(recordingTrackMixers, backingTrackMixers, jamTrackMixers, metronomeTrackMixers, adhocTrackMixers) => ({
recordingTrackMixers,
backingTrackMixers,
jamTrackMixers,
metronomeTrackMixers,
adhocTrackMixers
})
);
export const selectMixerLookupTables = createSelector(
[selectAllMixers, selectMixersByResourceId, selectMixersByTrackId],
(allMixers, mixersByResourceId, mixersByTrackId) => ({
allMixers,
mixersByResourceId,
mixersByTrackId
})
);
export const selectMasterPersonalMixers = createSelector(
[selectMasterMixers, selectPersonalMixers],
(masterMixers, personalMixers) => ({
masterMixers,
personalMixers
})
);
export const selectMixerMetadata = createSelector(
[selectMetronome, selectMetronomeSettings, selectMediaSummary, selectNoAudioUsers, selectClientsWithAudioOverride, selectMixersReady],
(metronome, metronomeSettings, mediaSummary, noAudioUsers, clientsWithAudioOverride, isReady) => ({
metronome,
metronomeSettings,
mediaSummary,
noAudioUsers,
clientsWithAudioOverride,
isReady
})
);
export const selectSimulatedCategoryMixers = createSelector(
[selectSimulatedMusicCategoryMixers, selectSimulatedChatCategoryMixers],
(simulatedMusicCategoryMixers, simulatedChatCategoryMixers) => ({
simulatedMusicCategoryMixers,
simulatedChatCategoryMixers
})
);