import { useState } from 'react'; import { Pencil, Trash2, ChevronDown, ChevronUp, Plus, CreditCard } from 'lucide-react'; import { fmt, estimatedPayoff, today, parseAmount } from '../utils.js'; import Modal from './Modal.jsx'; function PaymentForm({ loan, onSave, onClose }) { const [amount, setAmount] = useState(loan.monthly_payment ?? ''); const [date, setDate] = useState(today()); const [notes, setNotes] = useState(''); function submit(e) { e.preventDefault(); if (isNaN(parseAmount(amount))) return; onSave({ amount: parseAmount(amount), payment_date: date, notes: notes.trim() || null }); onClose(); } return (
); } export default function LoanCard({ loan, payments = [], onPayment, onEdit, onDelete }) { const [expanded, setExpanded] = useState(false); const [payModal, setPayModal] = useState(false); const progress = loan.original_amount > 0 ? Math.min(100, Math.round(((loan.original_amount - loan.current_balance) / loan.original_amount) * 100)) : 0; const payoff = estimatedPayoff(loan.current_balance, loan.monthly_payment, loan.interest_rate); const isPaidOff = loan.current_balance <= 0; return ({loan.notes}
}Ursprung
{fmt(loan.original_amount)}
Månadsbet.
{fmt(loan.monthly_payment)}
Klar ca
{payoff ?? '–'}
Ränta: {loan.interest_rate}%
)}