fix(26): pass jamServer to loadJamTrack and improve error handling
- Add jamServer to useMediaActions by creating object from subscribe/unsubscribe - Pass jamServer to loadJamTrackThunk so it can subscribe to packaging progress - Improve error handling to extract message from Response objects (not just Error) - Fixes "Failed to start packaging: undefined" error Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e4300aecb4
commit
3d847ece7f
|
|
@ -1,4 +1,4 @@
|
|||
import { useCallback } from 'react';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import {
|
||||
openBackingTrack as openBackingTrackThunk,
|
||||
|
|
@ -32,7 +32,13 @@ import { syncTracksToServer } from '../services/trackSyncService';
|
|||
const useMediaActions = () => {
|
||||
const dispatch = useDispatch();
|
||||
const sessionId = useSelector(selectSessionId);
|
||||
const { jamClient } = useJamServerContext();
|
||||
const { jamClient, subscribe, unsubscribe } = useJamServerContext();
|
||||
|
||||
// Create jamServer object with subscribe/unsubscribe for thunks
|
||||
const jamServer = useMemo(() => ({
|
||||
subscribe,
|
||||
unsubscribe
|
||||
}), [subscribe, unsubscribe]);
|
||||
|
||||
/**
|
||||
* Open a backing track file
|
||||
|
|
@ -144,7 +150,7 @@ const useMediaActions = () => {
|
|||
*/
|
||||
const loadJamTrack = useCallback(async (jamTrack) => {
|
||||
try {
|
||||
await dispatch(loadJamTrackThunk({ jamTrack, jamClient })).unwrap();
|
||||
await dispatch(loadJamTrackThunk({ jamTrack, jamClient, jamServer })).unwrap();
|
||||
|
||||
// Update media summary
|
||||
dispatch(updateMediaSummary({
|
||||
|
|
@ -161,7 +167,7 @@ const useMediaActions = () => {
|
|||
console.error('Error loading jam track:', error);
|
||||
throw error;
|
||||
}
|
||||
}, [dispatch, jamClient, sessionId]);
|
||||
}, [dispatch, jamClient, jamServer, sessionId]);
|
||||
|
||||
/**
|
||||
* Stop and close the currently playing JamTrack
|
||||
|
|
|
|||
|
|
@ -148,7 +148,9 @@ export const downloadJamTrack = createAsyncThunk(
|
|||
});
|
||||
} catch (err) {
|
||||
console.error('[JamTrack] Failed to enqueue mixdown:', err);
|
||||
throw new Error(`Failed to start packaging: ${err.message}`);
|
||||
// Handle both Error objects and Response objects (from apiFetch)
|
||||
const errorMessage = err?.message || err?.statusText || `HTTP ${err?.status}` || 'Unknown error';
|
||||
throw new Error(`Failed to start packaging: ${errorMessage}`);
|
||||
}
|
||||
|
||||
// Subscribe to WebSocket notifications for packaging progress
|
||||
|
|
|
|||
Loading…
Reference in New Issue