import { useState } from 'react' import type { NextPage } from 'next' import Head from 'next/head' import AdminLayout from '../../components/AdminLayout' import { CloudArrowUpIcon, DocumentArrowUpIcon, CheckCircleIcon } from '@heroicons/react/24/outline' const BulkImport: NextPage = () => { const [file, setFile] = useState(null) const [importing, setImporting] = useState(false) const [results, setResults] = useState(null) const handleFileChange = (e: React.ChangeEvent) => { if (e.target.files && e.target.files[0]) { setFile(e.target.files[0]) setResults(null) } } const handleImport = async () => { if (!file) return setImporting(true) const formData = new FormData() formData.append('file', file) try { const response = await fetch('/api/admin/bulk-import', { method: 'POST', body: formData }) if (response.ok) { const data = await response.json() setResults(data) setFile(null) } else { const error = await response.json() alert('Chyba pri importe: ' + error.error) } } catch (error) { alert('Chyba pri nahrávaní súboru') } finally { setImporting(false) } } return ( <> Hromadný import - Hliadka.sk Admin

Importujte viacero zdrojov naraz pomocou CSV súboru

Nahranie súboru

Vyberte CSV súbor s URL adresami zdrojov na import

CSV alebo TXT súbor až do 10MB

{file && (
{file.name} ({Math.round(file.size / 1024)} KB)
)} {file && (
)}
{results && (

Import dokončený

{results.imported || 0}
Úspešne importované
{results.skipped || 0}
Preskočené (duplikáty)
{results.failed || 0}
Neúspešné
{results.errors && results.errors.length > 0 && (

Chyby pri importe:

    {results.errors.map((error: string, idx: number) => (
  • • {error}
  • ))}
)}
)}

Inštrukcie

  • CSV súbor by mal obsahovať jeden URL na riadok
  • Prvý riadok môže obsahovať hlavičku (bude preskočený)
  • Podporované formáty: .csv, .txt
  • Maximálna veľkosť súboru: 10MB
  • Duplikátne URL adresy budú automaticky preskočené
  • Neplatné URL adresy budú označené ako chyby
) } export default BulkImport