fix(05-03): trigger session refresh when backing tracks change

PROBLEM:
- Backing track still not appearing in session screen after previous fix
- updateSessionInfo() extraction code not being called

ROOT CAUSE:
- onBackendMixerChanged() handler detects when backing tracks change
- It calls syncTracks() to update server but doesn't refresh session
- Without refreshCurrentSession(), the REST API is never called
- So updateSessionInfo() never runs and backing tracks never extracted

SOLUTION:
- Call refreshCurrentSession(true) after syncTracks() when backing tracks change
- Also add for metronome changes for consistency
- Now the full flow works:
  1. User opens backing track via jamClient
  2. Backend mixer changes, triggers 'RebuildMediaControl'
  3. onBackendMixerChanged detects backing track change
  4. Syncs tracks to server
  5. Refreshes session from server (REST API call)
  6. updateSessionInfo extracts backing tracks from response
  7. Dispatches to Redux mediaSlice
  8. mixerHelper.backingTracks populated
  9. Component displays backing track

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Nuwan 2026-01-16 12:59:43 +05:30
parent 973d0c6ef2
commit e4651ae1cb
1 changed files with 6 additions and 2 deletions

View File

@ -865,11 +865,15 @@ export default function useSessionModel(app, server, sessionScreen) {
if (!(previousBackingTracks.length === 0 && backingTracksData.length === 0) &&
JSON.stringify(previousBackingTracks) !== JSON.stringify(backingTracksData)) {
logger.debug("backing tracks changed", previousBackingTracks, backingTracksData);
syncTracks(allTracks);
await syncTracks(allTracks);
// Refresh session to get updated mixer data for backing tracks
refreshCurrentSession(true);
} else if (!(previousMetronomeTracks.length === 0 && metronomeTracks.length === 0) &&
JSON.stringify(previousMetronomeTracks) !== JSON.stringify(metronomeTracks)) {
logger.debug("metronome state changed ", previousMetronomeTracks, metronomeTracks);
syncTracks(allTracks);
await syncTracks(allTracks);
// Refresh session to get updated mixer data
refreshCurrentSession(true);
} else {
refreshCurrentSession(true);
}