"use client" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { TrendingUp, TrendingDown, Wallet, CreditCard } from "lucide-react" import type { BankingData } from "@/lib/types" interface OverviewCardsProps { data: BankingData } export function OverviewCards({ data }: OverviewCardsProps) { const totalBalance = data.accounts.reduce((sum, acc) => sum + acc.balance, 0) const thisMonth = new Date() thisMonth.setDate(1) const thisMonthStr = thisMonth.toISOString().slice(0, 7) const monthTransactions = data.transactions.filter((t) => t.date.startsWith(thisMonthStr)) const income = monthTransactions.filter((t) => t.amount > 0).reduce((sum, t) => sum + t.amount, 0) const expenses = monthTransactions.filter((t) => t.amount < 0).reduce((sum, t) => sum + Math.abs(t.amount), 0) const reconciled = data.transactions.filter((t) => t.isReconciled).length const total = data.transactions.length const reconciledPercent = total > 0 ? Math.round((reconciled / total) * 100) : 0 const formatCurrency = (amount: number) => { return new Intl.NumberFormat("fr-FR", { style: "currency", currency: "EUR", }).format(amount) } return (
Solde Total
= 0 ? "text-emerald-600" : "text-red-600")}> {formatCurrency(totalBalance)}

{data.accounts.length} compte{data.accounts.length > 1 ? "s" : ""}

Revenus du mois
{formatCurrency(income)}

{monthTransactions.filter((t) => t.amount > 0).length} opération {monthTransactions.filter((t) => t.amount > 0).length > 1 ? "s" : ""}

Dépenses du mois
{formatCurrency(expenses)}

{monthTransactions.filter((t) => t.amount < 0).length} opération {monthTransactions.filter((t) => t.amount < 0).length > 1 ? "s" : ""}

Pointage
{reconciledPercent}%

{reconciled} / {total} opérations pointées

) } import { cn } from "@/lib/utils"