'use client' import { useState } from 'react' export interface CreatePlaylistData { title: string description?: string isPublic: boolean } export interface CreatePlaylistModalProps { isOpen: boolean onClose: () => void onSubmit: (data: CreatePlaylistData) => void | Promise isLoading?: boolean } export function CreatePlaylistModal({ isOpen, onClose, onSubmit, isLoading = false }: CreatePlaylistModalProps) { const [formData, setFormData] = useState({ title: '', description: '', isPublic: true }) if (!isOpen) return null const handleSubmit = (e: React.FormEvent) => { e.preventDefault() if (formData.title.trim()) { onSubmit(formData) } } const handleClose = () => { if (!isLoading) { setFormData({ title: '', description: '', isPublic: true }) onClose() } } return (
{/* Backdrop */}
{/* Modal */}
{/* Header */}

Create Playlist

{/* Form */}
{/* Title */}
setFormData({ ...formData, title: e.target.value })} placeholder="My awesome playlist" className="w-full px-4 py-3 bg-zinc-800 border border-zinc-700 rounded-lg text-white placeholder-zinc-500 focus:outline-none focus:ring-2 focus:ring-purple-500" required autoFocus />
{/* Description */}