'use client' import { useState } from 'react' import { useFinanzasStore } from '@/lib/store' import { v4 as uuidv4 } from 'uuid' import { X, Calendar, DollarSign, Tag, FileText, CheckCircle2 } from 'lucide-react' import { cn } from '@/lib/utils' interface AddDebtModalProps { isOpen: boolean onClose: () => void } type DebtType = 'fixed' | 'variable' export function AddDebtModal({ isOpen, onClose }: AddDebtModalProps) { const [activeTab, setActiveTab] = useState('variable') const [name, setName] = useState('') const [amount, setAmount] = useState('') const [dateStr, setDateStr] = useState(new Date().toISOString().split('T')[0]) // For variable: YYYY-MM-DD const [dueDay, setDueDay] = useState('1') // For fixed: 1-31 const [categoryFixed, setCategoryFixed] = useState('housing') const [categoryVariable, setCategoryVariable] = useState('shopping') const [isAutoDebit, setIsAutoDebit] = useState(false) const [notes, setNotes] = useState('') const addFixedDebt = useFinanzasStore((state) => state.addFixedDebt) const addVariableDebt = useFinanzasStore((state) => state.addVariableDebt) if (!isOpen) return null const handleSubmit = (e: React.FormEvent) => { e.preventDefault() if (!name || !amount) return const numAmount = parseFloat(amount) if (isNaN(numAmount)) return if (activeTab === 'fixed') { addFixedDebt({ name, amount: numAmount, dueDay: parseInt(dueDay), category: categoryFixed as any, isAutoDebit, isPaid: false, notes: notes || undefined }) } else { addVariableDebt({ name, amount: numAmount, date: new Date(dateStr).toISOString(), category: categoryVariable as any, isPaid: false, notes: notes || undefined }) } // Reset and Close setName('') setAmount('') setNotes('') onClose() } return (
{/* Header */}

Agregar Gasto / Deuda

{/* Tabs */}
{/* Amount Input */}
$ setAmount(e.target.value)} className="w-full pl-8 pr-4 py-3 bg-slate-950 border border-slate-800 rounded-lg focus:ring-2 focus:ring-cyan-500/50 focus:border-cyan-500 text-white text-lg font-mono outline-none transition-all placeholder:text-slate-600" required autoFocus />
{/* Name Input */}
setName(e.target.value)} className="w-full px-4 py-2.5 bg-slate-950 border border-slate-800 rounded-lg focus:ring-2 focus:ring-cyan-500/50 focus:border-cyan-500 text-white outline-none transition-all placeholder:text-slate-600" required />
{/* Category Select */}
{/* Date/DueDay Input */}
{activeTab === 'fixed' ? (
setDueDay(e.target.value)} className="w-full px-4 py-2.5 bg-slate-950 border border-slate-800 rounded-lg focus:ring-2 focus:ring-cyan-500/50 focus:border-cyan-500 text-white outline-none" required /> del mes
) : ( setDateStr(e.target.value)} className="w-full px-4 py-2.5 bg-slate-950 border border-slate-800 rounded-lg focus:ring-2 focus:ring-cyan-500/50 focus:border-cyan-500 text-white outline-none [color-scheme:dark]" required /> )}
{activeTab === 'fixed' && (
setIsAutoDebit(!isAutoDebit)}>
{isAutoDebit && }
Débito Automático
)} {/* Notes */}