"use client"; import { RiArrowLeftRightLine, RiDeleteBin5Line, RiFileList2Line, RiInformationLine, RiPencilLine, } from "@remixicon/react"; import type React from "react"; import { cn } from "@/lib/utils/ui"; import MoneyValues from "../money-values"; import { Card, CardContent, CardFooter } from "../ui/card"; import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip"; interface AccountCardProps { accountName: string; accountType: string; balance: number; status?: string; icon?: React.ReactNode; excludeFromBalance?: boolean; excludeInitialBalanceFromIncome?: boolean; onViewStatement?: () => void; onEdit?: () => void; onRemove?: () => void; onTransfer?: () => void; className?: string; } export function AccountCard({ accountName, accountType, balance, status, icon, excludeFromBalance, excludeInitialBalanceFromIncome, onViewStatement, onEdit, onRemove, onTransfer, className, }: AccountCardProps) { const isInactive = status?.toLowerCase() === "inativa"; const actions = [ { label: "editar", icon: , onClick: onEdit, variant: "default" as const, }, { label: "extrato", icon: , onClick: onViewStatement, variant: "default" as const, }, { label: "transferir", icon: , onClick: onTransfer, variant: "default" as const, }, { label: "remover", icon: , onClick: onRemove, variant: "destructive" as const, }, ].filter((action) => typeof action.onClick === "function"); return (
{icon ? (
{icon}
) : null}

{accountName}

{(excludeFromBalance || excludeInitialBalanceFromIncome) && (
{excludeFromBalance && (

Desconsiderado do saldo total: Esta conta não é incluída no cálculo do saldo total geral.

)} {excludeInitialBalanceFromIncome && (

Saldo inicial desconsiderado das receitas: {" "} O saldo inicial desta conta não é contabilizado como receita nas métricas.

)}
)}

{accountType}

{actions.length > 0 ? ( {actions.map(({ label, icon, onClick, variant }) => ( ))} ) : null}
); }