"use client"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { MoreVertical, Pencil, Trash2, ExternalLink } from "lucide-react"; import { cn } from "@/lib/utils"; import Link from "next/link"; import type { Account, Folder } from "@/lib/types"; import { accountTypeIcons, accountTypeLabels } from "./constants"; import { Checkbox } from "@/components/ui/checkbox"; interface AccountCardProps { account: Account; folder?: Folder; transactionCount: number; onEdit: (account: Account) => void; onDelete: (accountId: string) => void; formatCurrency: (amount: number) => string; isSelected?: boolean; onSelect?: (accountId: string, selected: boolean) => void; } export function AccountCard({ account, folder, transactionCount, onEdit, onDelete, formatCurrency, isSelected = false, onSelect, }: AccountCardProps) { const Icon = accountTypeIcons[account.type]; return (
{onSelect && ( onSelect(account.id, checked === true) } onClick={(e) => e.stopPropagation()} /> )}
{account.name}

{accountTypeLabels[account.type]}

{account.accountNumber && (

{account.accountNumber}

)}
onEdit(account)}> Modifier onDelete(account.id)} className="text-red-600" > Supprimer
= 0 ? "text-emerald-600" : "text-red-600" )} > {formatCurrency(account.balance)}
{transactionCount} transactions {folder && {folder.name}}
{account.lastImport && (

Dernier import:{" "} {new Date(account.lastImport).toLocaleDateString("fr-FR")}

)} {account.externalUrl && ( Accéder au portail banque )}
); }