'use client' import React, { useState } from 'react' import PageLayout from '../../../components/PageLayout' import { useRouter } from 'next/navigation' import { useVatRates } from '../hooks/getTaxes' import { importVatCsv } from './hooks/TaxImporter' import { exportVatCsv, exportVatPdf } from './hooks/TaxExporter' export default function VatEditPage() { const router = useRouter() const { rates, loading, error, reload } = useVatRates() const [filter, setFilter] = useState('') const [importResult, setImportResult] = useState(null) const [importing, setImporting] = useState(false) const [page, setPage] = useState(1) const [pageSize, setPageSize] = useState(10) const onImport = async (file?: File | null) => { if (!file) return setImportResult(null) setImporting(true) const res = await importVatCsv(file) if (res.ok) { setImportResult(res.summary ? JSON.stringify(res.summary) : res.message || 'Import successful') await reload() } else { setImportResult(res.message || 'Import failed') } setImporting(false) } const filtered = rates.filter(v => v.country_name.toLowerCase().includes(filter.toLowerCase()) || v.country_code.toLowerCase().includes(filter.toLowerCase()) ) const totalPages = Math.max(1, Math.ceil(filtered.length / pageSize)) const pageData = filtered.slice((page - 1) * pageSize, page * pageSize) return (

Edit VAT rates

Import, export, and review (dummy data).

{importResult && {importResult}}
{error &&
{error}
} { setFilter(e.target.value); setPage(1); }} placeholder="Filter by country or code" className="w-full rounded-lg border border-gray-200 px-3 py-2 mb-3 focus:ring-2 focus:ring-blue-900 focus:border-transparent" />
{loading && ( )} {!loading && pageData.map(v => ( ))} {!loading && !error && pageData.length === 0 && ( )}
Country Code Standard Reduced Super reduced Parking
Loading VAT rates…
{v.country_name} {v.country_code} {v.standard_rate ?? '—'} {v.reduced_rate_1 ?? '—'} {v.super_reduced_rate ?? '—'} {v.parking_rate ?? '—'}
No entries found.
Rows per page:
Page {page} / {totalPages}
) }