import React, { useState } from 'react'; import { Dialog } from '../../ui/dialog'; import { Input } from '../../ui/input'; import { Lock, Globe } from 'lucide-react'; import { useToast } from '../../../components/feedback/ToastProvider'; import { useTranslation } from '@/hooks/useTranslation'; interface SaveQueueAsPlaylistModalProps { open: boolean; onClose: () => void; onSave: (name: string, isPublic: boolean) => void | Promise; } export const SaveQueueAsPlaylistModal: React.FC< SaveQueueAsPlaylistModalProps > = ({ open, onClose, onSave }) => { const { addToast } = useToast(); const { t } = useTranslation(); const [name, setName] = useState(''); const [isPublic, setIsPublic] = useState(false); const [saving, setSaving] = useState(false); const handleSubmit = async () => { if (!name) { addToast(t('queue.saveAsPlaylist.nameRequired'), 'error'); return; } setSaving(true); try { await onSave(name, isPublic); onClose(); } catch (err) { addToast( err instanceof Error ? err.message : t('queue.saveAsPlaylist.saveFailed'), 'error', ); } finally { setSaving(false); } }; return (
setName(e.target.value)} autoFocus placeholder={t('queue.saveAsPlaylist.namePlaceholder')} />
); };