'use client' import { useState } from 'react' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog' import { Progress } from '@/components/ui/progress' import { Paperclip } from 'lucide-react' import VatTreatmentSelect from './VatTreatmentSelect' import { EXPENSE_CATEGORIES, INCOME_CATEGORIES } from './transaction-types' import type { TransactionCategory, VatTreatment } from '@/types' const expenseCategories = EXPENSE_CATEGORIES const incomeCategories = INCOME_CATEGORIES interface BatchCategorySelectorProps { open: boolean onOpenChange: (open: boolean) => void selectedCount: number onSelectCategory: (category: TransactionCategory, vatTreatment?: VatTreatment) => void progress: { done: number; total: number } | null } export default function BatchCategorySelector({ open, onOpenChange, selectedCount, onSelectCategory, progress, }: BatchCategorySelectorProps) { const [vatTreatment, setVatTreatment] = useState('standard_25') const isProcessing = progress !== null const handleSelectCategory = (category: TransactionCategory) => { const resolvedVat = vatTreatment === 'none' ? undefined : vatTreatment onSelectCategory(category, resolvedVat) } return ( {isProcessing ? `Bokför ${progress.done}/${progress.total}...` : `Bokför ${selectedCount} transaktioner`} {isProcessing ? 'Vänta medan transaktionerna bokförs' : 'Välj en kategori som ska tillämpas på alla valda transaktioner'} {isProcessing ? (

{progress.done} av {progress.total} klara

) : (
{/* Underlag reminder */}

Underlag behöver bifogas separat för varje transaktion efter bokföring.

Momsbehandling

Kostnader

{expenseCategories.map((cat) => ( ))}

Intäkter

{incomeCategories.map((cat) => ( ))}
)}
) }