import { avatarColor } from "~/lib/avatar-colors";
import { resolveTeamAvatarData } from "~/lib/avatar-data";
import type { AvatarData, RawFlagConfig } from "~/lib/flag-types";
import { FlagSvg } from "~/components/ui/FlagSvg";
import { cn } from "~/lib/utils";
import { cloudinaryAvatarUrl } from "~/lib/cloudinary-url";
export interface TeamAvatarProps {
teamId: string;
teamName: string;
logoUrl?: string | null;
flagConfig?: RawFlagConfig | null;
avatarType?: string | null;
ownerAvatarData?: AvatarData | null;
size?: "sm" | "md" | "lg" | "xl";
className?: string;
}
const sizeClasses = {
sm: "h-6 w-6 text-[10px]",
md: "h-9 w-9 text-sm",
lg: "h-12 w-12 text-base",
xl: "h-16 w-16 text-xl",
};
const pixelSizes = {
sm: 24,
md: 36,
lg: 48,
xl: 64,
};
export function TeamAvatar({
teamId,
teamName,
logoUrl,
flagConfig,
avatarType,
ownerAvatarData,
size = "md",
className,
}: TeamAvatarProps) {
const avatar = resolveTeamAvatarData(
{ id: teamId, logoUrl, flagConfig, avatarType },
ownerAvatarData
);
if (avatar.type === "image") {
return (
);
}
if (avatar.type === "flag") {
return (