'use client' import { useState, useEffect } from 'react' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog' import { formatCurrency, formatDate } from '@/lib/utils' import { ArrowUpRight, ArrowDownRight } from 'lucide-react' import VatTreatmentSelect from './VatTreatmentSelect' import { EXPENSE_CATEGORIES, INCOME_CATEGORIES } from './transaction-types' import type { TransactionWithInvoice } from './transaction-types' import type { TransactionCategory, VatTreatment } from '@/types' interface CategoryExpandedDialogProps { open: boolean onOpenChange: (open: boolean) => void transaction: TransactionWithInvoice | null onSelectCategory: (category: TransactionCategory, vatTreatment?: VatTreatment) => void isProcessing: boolean } export default function CategoryExpandedDialog({ open, onOpenChange, transaction, onSelectCategory, isProcessing, }: CategoryExpandedDialogProps) { const [vatTreatment, setVatTreatment] = useState('standard_25') useEffect(() => { if (open) { setVatTreatment('standard_25') } }, [open, transaction?.id]) if (!transaction) return null const isIncome = transaction.amount > 0 const handleSelectCategory = (category: TransactionCategory) => { const resolvedVat = vatTreatment === 'none' ? undefined : vatTreatment onSelectCategory(category, resolvedVat) } return ( Välj kategori Välj rätt kategori för att bokföra transaktionen {/* Transaction summary */}
{isIncome ? ( ) : ( )}

{transaction.description}

{formatDate(transaction.date)}

{isIncome ? '+' : ''} {formatCurrency(transaction.amount, transaction.currency)}

{/* VAT treatment selector */}

Momsbehandling

{/* Category grid */}

Kostnader

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

Intäkter

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