diff --git a/components/editor/AudioEditor.tsx b/components/editor/AudioEditor.tsx index bdb017b..7e05266 100644 --- a/components/editor/AudioEditor.tsx +++ b/components/editor/AudioEditor.tsx @@ -95,6 +95,7 @@ export function AudioEditor() { removeTrack, updateTrack, clearTracks, + loadTracks, } = useMultiTrack(); // Track whether we should auto-select on next add (when project is empty) @@ -955,15 +956,8 @@ export function AudioEditor() { throw new Error('Project not found'); } - // Clear current state - clearTracks(); - - // Load tracks - for (const track of projectData.tracks) { - if (track.audioBuffer) { - addTrackFromBufferOriginal(track.audioBuffer, track.name); - } - } + // Load tracks with all their properties restored + loadTracks(projectData.tracks); // Restore settings setZoom(projectData.settings.zoom); @@ -976,7 +970,7 @@ export function AudioEditor() { addToast({ title: 'Project Loaded', - description: `"${projectData.metadata.name}" loaded successfully`, + description: `"${projectData.metadata.name}" loaded successfully (${projectData.tracks.length} track${projectData.tracks.length !== 1 ? 's' : ''})`, variant: 'success', duration: 2000, }); @@ -989,7 +983,7 @@ export function AudioEditor() { duration: 3000, }); } - }, [clearTracks, addTrackFromBufferOriginal, addToast]); + }, [loadTracks, addToast]); // Delete project const handleDeleteProject = React.useCallback(async (projectId: string) => { @@ -1252,6 +1246,19 @@ export function AudioEditor() {