'use client' import { useState } from 'react' import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Label } from '@/components/ui/label' import type { DetectedColumns, BalanceColumnLayout } from '@/lib/import/opening-balance/types' interface OpeningBalanceColumnMappingStepProps { headers: string[] previewRows: string[][] detectedColumns: DetectedColumns onConfirm: (columns: DetectedColumns) => void onBack: () => void } export default function OpeningBalanceColumnMappingStep({ headers, previewRows, detectedColumns, onConfirm, onBack, }: OpeningBalanceColumnMappingStepProps) { const [accountNumberCol, setAccountNumberCol] = useState( detectedColumns.account_number_col, ) const [accountNameCol, setAccountNameCol] = useState( detectedColumns.account_name_col, ) const [layout, setLayout] = useState( detectedColumns.layout, ) const [balanceCol, setBalanceCol] = useState( detectedColumns.balance_col, ) const [debitCol, setDebitCol] = useState( detectedColumns.debit_col, ) const [creditCol, setCreditCol] = useState( detectedColumns.credit_col, ) const columnOptions = headers.map((h, i) => ({ value: String(i), label: `${i + 1}: ${h || '(tom)'}`, })) const canContinue = accountNumberCol >= 0 && (layout === 'net' ? balanceCol !== null : debitCol !== null && creditCol !== null) const handleConfirm = () => { onConfirm({ account_number_col: accountNumberCol, account_name_col: accountNameCol, layout, balance_col: layout === 'net' ? balanceCol : null, debit_col: layout === 'debit_credit' ? debitCol : null, credit_col: layout === 'debit_credit' ? creditCol : null, confidence: 1, // User-confirmed }) } return ( Kolumnmappning Vi kunde inte automatiskt identifiera alla kolumner. Ange vilka kolumner som innehåller kontonummer och belopp. {/* Layout toggle */}
{/* Required mappings */}
{layout === 'net' && (
)} {layout === 'debit_credit' && ( <>
)}
{/* Preview */} {previewRows.length > 0 && (
{headers.map((h, i) => ( ))} {previewRows.slice(0, 5).map((row, ri) => ( {row.map((cell, ci) => ( ))} ))}
{h || `Kolumn ${i + 1}`}
{cell}
)} {/* Actions */}
) }