import {useState} from 'react'; import {Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle} from '@/components/ui/dialog'; import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from '@/components/ui/select'; import {Button} from '@/components/ui/button'; import {Input} from '@/components/ui/input'; import {Label} from '@/components/ui/label'; import {useAppDispatch, addLiability} from '@/store'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; } const liabilityTypes = ['credit_card', 'loan', 'mortgage', 'other'] as const; export default function AddLiabilityDialog({open, onOpenChange}: Props) { const dispatch = useAppDispatch(); const [form, setForm] = useState({name: '', type: '', balance: ''}); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); dispatch( addLiability({ id: crypto.randomUUID(), name: form.name, type: form.type as (typeof liabilityTypes)[number], balance: parseFloat(form.balance) || 0, updatedAt: new Date().toISOString() }) ); onOpenChange(false); setForm({name: '', type: '', balance: ''}); }; return ( Add Liability Add a new liability to track
setForm({...form, name: e.target.value})} className="input-depth" required />
setForm({...form, balance: e.target.value})} className="input-depth" required />
); }