'use client' import { useState } from 'react' import { useMusicPlayer, isRadioTrack } from './music-provider' import { FullScreenPlayer } from './full-screen-player' import { QueueView } from './queue-view' import { Slider } from '@/components/ui/slider' import { Play, Pause, SkipBack, SkipForward, ListMusic, Shuffle, Radio } from 'lucide-react' function formatTime(secs: number) { if (!secs || !isFinite(secs)) return '0:00' const m = Math.floor(secs / 60) const s = Math.floor(secs % 60) return `${m}:${s.toString().padStart(2, '0')}` } export function MiniPlayer() { const { state, togglePlay, seek, nextTrack, prevTrack, setFullScreen, toggleShuffle } = useMusicPlayer() const [queueOpen, setQueueOpen] = useState(false) if (!state.currentTrack) return null const track = state.currentTrack const isRadio = isRadioTrack(track) return ( <>
{/* Progress bar (thin, above the player) — disabled for radio */}
{isRadio ? (
) : ( seek(v)} className="h-1 [&_[data-slot=slider]]:h-1 [&_span[data-slot=scroll-bar]]:hidden" /> )}
{/* Cover art - clickable to open fullscreen */} {/* Track info - clickable to open fullscreen */} {/* Time / LIVE badge */} {isRadio ? ( LIVE ) : ( {formatTime(state.progress)} / {formatTime(state.duration)} )} {/* Controls */}
{!isRadio && ( )}
setQueueOpen(false)} /> ) }