fix: convert selectedTrack.name to string in Effect Chain header

Fixed [object Object] display in Effect Chain section of SidePanel
by adding String() conversion to selectedTrack.name.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-17 22:46:28 +01:00
parent 53d436a174
commit 7c19c069bf
2 changed files with 18 additions and 1 deletions

View File

@@ -11,7 +11,21 @@ export function useMultiTrack() {
try {
const saved = localStorage.getItem(STORAGE_KEY);
if (saved) {
console.log('Raw localStorage data:', saved);
const parsed = JSON.parse(saved);
console.log('Parsed localStorage data:', parsed);
// Clear corrupted data immediately if we detect issues
const hasInvalidData = parsed.some((t: any) =>
typeof t.name !== 'string' || t.name === '[object Object]'
);
if (hasInvalidData) {
console.warn('Detected corrupted track data in localStorage, clearing...');
localStorage.removeItem(STORAGE_KEY);
return [];
}
// Note: AudioBuffers can't be serialized, so we only restore track metadata
return parsed.map((t: any) => ({
...t,
@@ -55,12 +69,15 @@ export function useMultiTrack() {
const addTrack = useCallback((name?: string) => {
const track = createTrack(name);
console.log('addTrack - creating track with name:', name, 'typeof:', typeof name, 'track:', track);
setTracks((prev) => [...prev, track]);
return track;
}, []);
const addTrackFromBuffer = useCallback((buffer: AudioBuffer, name?: string) => {
console.log('addTrackFromBuffer - received name:', name, 'typeof:', typeof name);
const track = createTrackFromBuffer(buffer, name);
console.log('addTrackFromBuffer - created track:', track, 'track.name:', track.name, 'typeof track.name:', typeof track.name);
setTracks((prev) => [...prev, track]);
return track;
}, []);