"use client"; import { CategoryIcon } from "@/components/categorias/category-icon"; import DotIcon from "@/components/dot-icon"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { getAvatarSrc } from "@/lib/pagadores/utils"; import { getConditionIcon, getPaymentMethodIcon } from "@/lib/utils/icons"; import { RiBankCard2Line, RiBankLine } from "@remixicon/react"; import Image from "next/image"; type SelectItemContentProps = { label: string; avatarUrl?: string | null; logo?: string | null; icon?: string | null; }; export function PagadorSelectContent({ label, avatarUrl, }: SelectItemContentProps) { const avatarSrc = getAvatarSrc(avatarUrl); const initial = label.charAt(0).toUpperCase() || "?"; return ( {initial} {label} ); } export function CategoriaSelectContent({ label, icon, }: SelectItemContentProps) { return ( {label} ); } export function TransactionTypeSelectContent({ label }: { label: string }) { const colorMap: Record = { Receita: "bg-emerald-600 dark:bg-emerald-400", Despesa: "bg-red-600 dark:bg-red-400", TransferĂȘncia: "bg-blue-600 dark:bg-blue-400", }; return ( {label} ); } export function PaymentMethodSelectContent({ label }: { label: string }) { const icon = getPaymentMethodIcon(label); return ( {icon} {label} ); } export function ConditionSelectContent({ label }: { label: string }) { const icon = getConditionIcon(label); return ( {icon} {label} ); } export function ContaCartaoSelectContent({ label, logo, isCartao, }: SelectItemContentProps & { isCartao?: boolean }) { const resolveLogoSrc = (logoPath: string | null) => { if (!logoPath) { return null; } const fileName = logoPath.split("/").filter(Boolean).pop() ?? logoPath; return `/logos/${fileName}`; }; const logoSrc = resolveLogoSrc(logo); const Icon = isCartao ? RiBankCard2Line : RiBankLine; return ( {logoSrc ? ( {`Logo ) : ( )} {label} ); }