'use client' import { useState } from 'react' import { useFinanzasStore } from '@/lib/store' import { Plus, Trash2, TrendingUp, DollarSign } from 'lucide-react' import { format } from 'date-fns' import { es } from 'date-fns/locale' import { DashboardLayout } from '@/components/layout/DashboardLayout' export default function IncomesPage() { const incomes = useFinanzasStore((state) => state.incomes) || [] const addIncome = useFinanzasStore((state) => state.addIncome) const removeIncome = useFinanzasStore((state) => state.removeIncome) const [newIncome, setNewIncome] = useState({ amount: '', description: '', category: 'salary' as const, }) const handleAdd = () => { if (!newIncome.amount || !newIncome.description) return addIncome({ amount: parseFloat(newIncome.amount), description: newIncome.description, category: newIncome.category, date: new Date().toISOString(), }) setNewIncome({ amount: '', description: '', category: 'salary' }) } const totalIncomes = incomes.reduce((acc, curr) => acc + curr.amount, 0) return (

Ingresos

Total Acumulado

${totalIncomes.toLocaleString()}

{/* Formulario */}

Nuevo Ingreso

setNewIncome({ ...newIncome, description: e.target.value }) } className="w-full bg-slate-700 border-slate-600 border rounded-lg px-3 py-2 text-white focus:outline-none focus:ring-2 focus:ring-emerald-500" />
setNewIncome({ ...newIncome, amount: e.target.value }) } className="w-full pl-9 bg-slate-700 border-slate-600 border rounded-lg px-3 py-2 text-white focus:outline-none focus:ring-2 focus:ring-emerald-500" />
{/* Lista */}

Historial de Ingresos

{incomes.length === 0 ? (

No hay ingresos registrados aún.

) : (
{incomes .sort( (a, b) => new Date(b.date).getTime() - new Date(a.date).getTime() ) .map((income) => (

{income.description}

{income.category} •{' '} {format(new Date(income.date), "d 'de' MMMM", { locale: es, })}

+${income.amount.toLocaleString()}
))}
)}
) }