import { useState, useEffect } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { useToast } from "@/hooks/use-toast"; import { ArrowUpIcon, ArrowDownIcon, CreditCardIcon, Target } from "lucide-react"; import { getResumoFinanceiro, getCategorySummary } from "@/services/transacao"; import { ResumoFinanceiro, CategorySummary } from "@/types/financialTypes"; import TransactionsTable from "@/components/dashboard/TransactionsTable"; import { useTransactions } from "@/hooks/useTransactions"; import CategoryChart from "@/components/dashboard/CategoryChart"; const Dashboard = () => { const [resumo, setResumo] = useState(null); const [categories, setCategories] = useState([]); const [isLoading, setIsLoading] = useState(true); const { toast } = useToast(); const getCurrentMonth = () => { const now = new Date(); return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}`; }; const { transactions, isLoading: transactionsLoading, formatCurrency } = useTransactions({ monthFilter: getCurrentMonth() }); useEffect(() => { const storedUserId = localStorage.getItem('userId'); const finDashUser = localStorage.getItem('finDashUser'); if (!storedUserId && finDashUser) { localStorage.setItem('userId', finDashUser); } else if (!storedUserId && !finDashUser) { const defaultId = '9f267008-9128-4a2f-b730-de0a0b5602a9'; localStorage.setItem('userId', defaultId); } }, []); const loadResumo = async () => { try { setIsLoading(true); console.log("Carregando resumo financeiro..."); const data = await getResumoFinanceiro(); console.log("Resumo carregado:", data); setResumo(data); // Load categories for chart const categoriesData = await getCategorySummary('despesa'); setCategories(categoriesData); } catch (error) { console.error("Erro ao carregar resumo:", error); toast({ title: "Erro ao carregar resumo", description: "Não foi possível obter os dados do Supabase", variant: "destructive" }); } finally { setIsLoading(false); } }; useEffect(() => { loadResumo(); }, [toast]); if (isLoading) { return (
{[1, 2, 3, 4].map((i) => (
))}
); } return (

Dashboard

Total Receitas
{resumo ? formatCurrency(resumo.totalReceitas) : 'R$ 0,00'}

Entradas do mês

Total Despesas
{resumo ? formatCurrency(resumo.totalDespesas) : 'R$ 0,00'}

Saídas do mês

Cartões de Crédito
{resumo ? formatCurrency(resumo.totalCartoes || 0) : 'R$ 0,00'}

Gastos nos cartões

Saldo
= 0 ? 'text-green-600' : 'text-red-600' }`}> {resumo ? formatCurrency(resumo.totalReceitas - resumo.totalDespesas - (resumo.totalCartoes || 0)) : 'R$ 0,00'}

Resultado do mês

Despesas por Categoria Distribuição dos seus gastos Últimas Transações Suas transações mais recentes {}} onDelete={() => {}} />
); }; export default Dashboard;