'use client' import { Switch } from '@/components/ui/switch' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Badge } from '@/components/ui/badge' import { formatCurrency } from '@/lib/utils' import { getExpenseCategories, CATEGORY_LABELS } from '../lib/receipt-categorizer' import type { ReceiptLineItem, TransactionCategory } from '@/types' interface ReceiptLineItemRowProps { item: ReceiptLineItem onToggleBusiness: (id: string, isBusiness: boolean) => void onCategoryChange: (id: string, category: TransactionCategory) => void disabled?: boolean } export default function ReceiptLineItemRow({ item, onToggleBusiness, onCategoryChange, disabled = false, }: ReceiptLineItemRowProps) { const expenseCategories = getExpenseCategories() const isBusiness = item.is_business === true return (
{/* Description and amount */}

{item.description}

{item.quantity !== 1 && (

{item.quantity} x {item.unit_price ? formatCurrency(item.unit_price, 'SEK') : '—'}

)}

{formatCurrency(item.line_total, 'SEK')}

{item.vat_rate && (

{item.vat_rate}% moms

)}
{/* Classification controls */}
{/* Business/Private toggle */}
Privat onToggleBusiness(item.id, checked)} disabled={disabled} /> Företag
{/* Category selector (only for business) */} {isBusiness && ( )} {/* Confidence badge */} {item.extraction_confidence !== null && item.extraction_confidence < 0.8 && ( {Math.round((item.extraction_confidence || 0) * 100)}% )} {/* AI suggestion indicator */} {item.suggested_category && item.is_business === null && ( Förslag: {CATEGORY_LABELS[`expense_${item.suggested_category}` as TransactionCategory] || item.suggested_category} )}
) }