fix(27): prevent session refresh from clearing local backing tracks
Race condition: when opening backing track, the sequence was: 1. Local state set from native client (my previous fix) 2. Native callback triggers refreshCurrentSession 3. Server hasn't received sync yet, returns empty backing_tracks 4. dispatch(setBackingTracks([])) clears local data 5. Track disappears Fix: Only dispatch setBackingTracks if server has data. When user closes backing track, closeMedia action clears the state directly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c0c6e33863
commit
d59fdae944
|
|
@ -692,8 +692,13 @@ export default function useSessionModel(app, server, sessionScreen) {
|
|||
}
|
||||
});
|
||||
}
|
||||
dispatch(setBackingTracks(extractedBackingTracks));
|
||||
console.log('[useSessionModel] Extracted backing tracks:', extractedBackingTracks);
|
||||
// Only update backing tracks if server has data
|
||||
// Avoids race condition: local state set from native client gets cleared
|
||||
// by session refresh before server sync completes
|
||||
if (extractedBackingTracks.length > 0) {
|
||||
dispatch(setBackingTracks(extractedBackingTracks));
|
||||
console.log('[useSessionModel] Extracted backing tracks:', extractedBackingTracks);
|
||||
}
|
||||
|
||||
// Extract jam tracks
|
||||
const extractedJamTracks = response.jam_track && response.jam_track.tracks
|
||||
|
|
|
|||
Loading…
Reference in New Issue