From cf1358e051240657bffb830258db450bee6040c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 22:50:43 +0100 Subject: [PATCH] fix: ensure track name is always a string in createTrack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added type checking to prevent event objects from being used as track names. When onClick handlers pass events, we now explicitly check for string type. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- lib/audio/track-utils.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/audio/track-utils.ts b/lib/audio/track-utils.ts index 9067a97..012a54f 100644 --- a/lib/audio/track-utils.ts +++ b/lib/audio/track-utils.ts @@ -19,9 +19,12 @@ export function createTrack(name?: string, color?: TrackColor): Track { const colors: TrackColor[] = ['blue', 'green', 'purple', 'orange', 'pink', 'indigo', 'yellow', 'red']; const randomColor = colors[Math.floor(Math.random() * colors.length)]; + // Ensure name is always a string, handle cases where event objects might be passed + const trackName = typeof name === 'string' && name.trim() ? name.trim() : 'New Track'; + return { id: generateTrackId(), - name: name || 'New Track', + name: trackName, color: TRACK_COLORS[color || randomColor], height: DEFAULT_TRACK_HEIGHT, audioBuffer: null, @@ -43,7 +46,9 @@ export function createTrackFromBuffer( name?: string, color?: TrackColor ): Track { - const track = createTrack(name, color); + // Ensure name is a string before passing to createTrack + const trackName = typeof name === 'string' && name.trim() ? name.trim() : undefined; + const track = createTrack(trackName, color); track.audioBuffer = buffer; return track; }