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));
|
// Only update backing tracks if server has data
|
||||||
console.log('[useSessionModel] Extracted backing tracks:', extractedBackingTracks);
|
// 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
|
// Extract jam tracks
|
||||||
const extractedJamTracks = response.jam_track && response.jam_track.tracks
|
const extractedJamTracks = response.jam_track && response.jam_track.tracks
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue