diff --git a/jam-ui/src/store/features/mediaSlice.js b/jam-ui/src/store/features/mediaSlice.js index 8be9f7ddf..8270d9103 100644 --- a/jam-ui/src/store/features/mediaSlice.js +++ b/jam-ui/src/store/features/mediaSlice.js @@ -629,6 +629,17 @@ export const { export default mediaSlice.reducer; +// Cleanup function for JamTrack download callbacks +// Called on component unmount to prevent memory leaks from orphaned window globals +// Pattern matches useRecordingHelpers.js cleanup approach +export const cleanupJamTrackCallbacks = () => { + if (typeof window !== 'undefined') { + delete window.jamTrackDownloadProgress; + delete window.jamTrackDownloadSuccess; + delete window.jamTrackDownloadFail; + } +}; + // Selectors export const selectBackingTracks = (state) => state.media.backingTracks; export const selectJamTracks = (state) => state.media.jamTracks;