import React from 'react';
import { usePlayerStore } from '../store/playerStore';
import { useUIStore } from '@/stores/ui';
import { cn } from '@/lib/utils';
import { X, GripVertical, ListMusic } from 'lucide-react';
import { Badge } from '@/components/ui/badge';
import { ScrollArea } from '@/components/ui/scroll-area';
import { EmptyState } from '@/components/ui/empty-state';
interface PlayerQueueProps {
isOpen: boolean;
onClose: () => void;
currentTrackId?: string;
onPlay: (track: any) => void;
}
export function PlayerQueue({ isOpen, onClose, currentTrackId, onPlay }: PlayerQueueProps) {
const { queue, currentIndex, removeFromQueue, clearQueue } = usePlayerStore();
const { sidebarOpen } = useUIStore();
if (!isOpen) return null;
return (
{/* Header */}
Play Queue
{queue.length} Tracks
{/* Content */}
{queue.length === 0 ? (
}
title="Your queue is empty"
description="Add tracks to keep the vibe going."
size="sm"
className="border-0 shadow-none bg-transparent"
/>
) : (
{queue.map((track, index) => {
const isCurrent = index === currentIndex;
const isPast = index < currentIndex;
return (
{/* Drag Handle (Simulated) */}
{/* Number/Status */}
{isCurrent ? (
) : (
index + 1
)}
{/* Info */}
!isCurrent && onPlay(track)}
>
{track.title}
{track.artist}
{/* Actions */}
);
})}
)}
{/* Backdrop for explicit dismissal on mobile if needed */}
);
}