'use client' import { useState } from 'react' import API_URL from '@/lib/api' interface DataPreviewProps { data: any loading: boolean formData: any } export default function DataPreview({ data, loading, formData }: DataPreviewProps) { const [filling, setFilling] = useState(false) const [fillResult, setFillResult] = useState(null) const handleFillToWebsite = async () => { if (!formData) return setFilling(true) setFillResult(null) try { const response = await fetch(`${API_URL}/api/fill/journeybook`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ username: formData.username, password: formData.password, start_date: formData.startDate, end_date: formData.endDate, start_km: parseInt(formData.startKm), end_km: parseInt(formData.endKm), vehicle_registration: formData.vehicleRegistration, variance: parseFloat(formData.variance), dry_run: false }), }) if (!response.ok) { const errorData = await response.json() throw new Error(errorData.detail || 'Chyba při vyplňování dat') } const result = await response.json() setFillResult(result) } catch (err: any) { alert('Chyba: ' + err.message) } finally { setFilling(false) } } if (loading) { return (

Načítání dat...

) } if (!data) { return (

Náhled dat

Vyplňte formulář a klikněte na "Vypočítat"

Data se zobrazí zde

) } return (

Náhled dat

Měsíc

{data.month}

Celkem záznamů

{data.total_entries}

Počáteční km

{data.start_km.toLocaleString()}

Koncový km

{data.end_km.toLocaleString()}

Celkem ujeto

{(data.end_km - data.start_km).toLocaleString()} km

Filtrováno dnů

{data.filtered_days}

{data.entries.length > 0 && Object.keys(data.entries[0]).map((key: string) => ( ))} {data.entries.map((entry: any, index: number) => ( {Object.keys(entry).map((key: string) => ( ))} ))}
{key}
{entry[key] !== null && entry[key] !== undefined ? entry[key] : '-'}
{formData && formData.startDate === '2025-01-01' && (
{fillResult && (

{fillResult.dry_run ? 'Výsledek DRY RUN:' : 'Výsledek vyplňování:'}

Měsíc: {fillResult.month}

Celkem řádků: {fillResult.total_rows}

{fillResult.dry_run ? (

Připraveno aktualizací: {fillResult.updates_prepared}

) : ( <>

Úspěšně vyplněno: {fillResult.successful}

Chyby: {fillResult.failed}

)} {fillResult.dry_run && (

⚠️ DRY RUN MODE - Data nebyla odeslána na web

)} {!fillResult.dry_run && fillResult.successful > 0 && (

✅ Data byla úspěšně vyplněna. Nyní zkontrolujte na webu a klikněte "Uzavřít měsíc" ručně.

)}
)}
)}
) }