"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 ? (
) : (
)}
{label}
);
}