| /** Format seconds to mm:ss (for playback time display) */ | |
| export function formatTime(seconds: number): string { | |
| if (!isFinite(seconds) || seconds < 0) return '0:00' | |
| const m = Math.floor(seconds / 60) | |
| const s = Math.floor(seconds % 60) | |
| return `${m}:${s.toString().padStart(2, '0')}` | |
| } | |
| /** Format seconds to mm:ss, returns '--:--' for invalid/zero values (for track duration display) */ | |
| export function formatDuration(seconds: number): string { | |
| if (!seconds || !isFinite(seconds) || seconds <= 0) return '--:--' | |
| const m = Math.floor(seconds / 60) | |
| const s = Math.floor(seconds % 60) | |
| return `${m}:${s.toString().padStart(2, '0')}` | |
| } | |