import React, { useState } from 'react'; import { Button } from '../../ui/button'; import { X, Search, Plus, Check } from 'lucide-react'; import { useToast } from '../../../context/ToastContext'; import { Playlist } from '../../../types'; interface AddToPlaylistModalProps { onClose: () => void; onAdd: (playlistIds: string[]) => void; } // Mock user playlists const MOCK_USER_PLAYLISTS: Playlist[] = [ { id: 'p1', title: 'Cyberpunk Essentials', creator: 'Cyber_Producer', userId: 'u1', isPublic: true, coverUrl: 'https://picsum.photos/100', trackCount: 45, likes: 120, tags: [] }, { id: 'p2', title: 'Late Night Coding', creator: 'Cyber_Producer', userId: 'u1', isPublic: false, coverUrl: 'https://picsum.photos/101', trackCount: 22, likes: 15, tags: [] }, { id: 'p3', title: 'Gym Phonk', creator: 'Cyber_Producer', userId: 'u1', isPublic: true, coverUrl: 'https://picsum.photos/102', trackCount: 105, likes: 300, tags: [] }, ]; export const AddToPlaylistModal: React.FC = ({ onClose, onAdd }) => { const { addToast } = useToast(); const [search, setSearch] = useState(''); const [selectedIds, setSelectedIds] = useState([]); const filteredPlaylists = MOCK_USER_PLAYLISTS.filter(p => p.title.toLowerCase().includes(search.toLowerCase())); const toggleSelection = (id: string) => { setSelectedIds(prev => prev.includes(id) ? prev.filter(pid => pid !== id) : [...prev, id]); }; const handleConfirm = () => { if (selectedIds.length === 0) return; onAdd(selectedIds); onClose(); }; return (

Add to Playlist

setSearch(e.target.value)} autoFocus />
{filteredPlaylists.map(playlist => (
toggleSelection(playlist.id)} className={`flex items-center p-2 rounded cursor-pointer group transition-colors ${selectedIds.includes(playlist.id) ? 'bg-kodo-cyan/10' : 'hover:bg-white/5'}`} >
{playlist.title}
{playlist.trackCount} tracks
{selectedIds.includes(playlist.id) && }
))}
); };