'use client'; import { useState } from 'react'; import { ImportRequest, ImportResult, importApi } from '@/lib/api'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, } from '@/components/ui/sheet'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Checkbox } from '@/components/ui/checkbox'; import { UploadIcon, FolderOpenIcon, CheckCircleIcon, XCircleIcon, LoaderIcon } from 'lucide-react'; interface ImportSheetProps { onSuccess: () => void; } export function ImportSheet({ onSuccess }: ImportSheetProps) { const [open, setOpen] = useState(false); const [directory, setDirectory] = useState(''); const [recursive, setRecursive] = useState(true); const [isImporting, setIsImporting] = useState(false); const [result, setResult] = useState(null); const handleImport = async () => { if (!directory.trim()) return; setIsImporting(true); setResult(null); try { const importData: ImportRequest = { directory: directory.trim(), recursive, }; const importResult = await importApi.start(importData); setResult(importResult); if (importResult.success) { onSuccess(); } } catch (err) { setResult({ success: false, message: err instanceof Error ? err.message : 'Error al importar', imported: 0, errors: [err instanceof Error ? err.message : 'Error desconocido'], }); } finally { setIsImporting(false); } }; const handleClose = () => { setOpen(false); setDirectory(''); setResult(null); }; return ( Importar Juegos Importa juegos desde archivos ROM en un directorio local.
setDirectory(e.target.value)} placeholder="/path/to/roms" disabled={isImporting} />
setRecursive(checked === true)} disabled={isImporting} />
{result && (
{result.success ? ( ) : ( )} {result.success ? 'Importación completada' : 'Error en la importación'}

{result.message}

ROMs importadas: {result.imported}

{result.errors.length > 0 && (

Errores:

    {result.errors.map((error, index) => (
  • {error}
  • ))}
)}
)} {isImporting && (
Importando ROMs...
)}
); }