import { cn } from "~/lib/utils"; import { getDisplayFlagConfig } from "~/lib/avatar-data"; import type { FlagConfig } from "~/lib/flag-types"; interface FlagSvgProps { config: FlagConfig; size?: number; className?: string; title?: string; } function colorAt(colors: string[], index: number): string { return colors[index % colors.length] ?? "#adf661"; } export function FlagSvg({ config, size = 48, className, title }: FlagSvgProps) { const safeConfig = getDisplayFlagConfig(`${config.pattern}:${config.colors.join("-")}`, config); const colors = safeConfig.colors; const c0 = colorAt(colors, 0); const c1 = colorAt(colors, 1); const c2 = colorAt(colors, 2); return ( {title ? {title} : null} {safeConfig.pattern === "triband-h" && ( <> )} {safeConfig.pattern === "triband-v" && ( <> )} {safeConfig.pattern === "diagonal" && ( <> )} {safeConfig.pattern === "nordic-cross" && ( <> )} {safeConfig.pattern === "cross" && ( <> )} {safeConfig.pattern === "canton" && ( <> )} {safeConfig.pattern === "triangle" && ( <> )} {safeConfig.pattern === "chevron" && ( <> )} {safeConfig.pattern === "quartered" && ( <> )} {safeConfig.pattern === "bordered" && ( <> )} {safeConfig.pattern === "circle" && ( <> )} {safeConfig.pattern === "star" && ( <> )} ); }