import { Shield, ShieldCheck, ShieldX, ShieldQuestion } from "lucide-react";
import { cn } from "~/lib/utils";
interface AntiCheatBadgeProps {
antiCheatRelevant: boolean;
antiCheatStatus: "none" | "supported" | "unsupported" | "unknown" | null;
antiCheatName?: string | null;
compact?: boolean; // for list views
className?: string;
}
const statusConfig = {
supported: {
icon: ShieldCheck,
label: "Anti-Cheat: Supported",
color: "bg-green-500/15 text-green-400 border-green-500/30",
},
unsupported: {
icon: ShieldX,
label: "Anti-Cheat: Unsupported",
color: "bg-red-500/15 text-red-400 border-red-500/30",
},
unknown: {
icon: ShieldQuestion,
label: "Anti-Cheat: Unknown",
color: "bg-yellow-500/15 text-yellow-400 border-yellow-500/30",
},
none: {
icon: Shield,
label: "No Anti-Cheat",
color: "bg-zinc-500/15 text-zinc-400 border-zinc-500/30",
},
} as const;
export function AntiCheatBadge({
antiCheatRelevant,
antiCheatStatus,
antiCheatName,
compact = false,
className,
}: AntiCheatBadgeProps) {
if (!antiCheatRelevant || !antiCheatStatus || antiCheatStatus === "none") {
return null;
}
const config = statusConfig[antiCheatStatus];
const Icon = config.icon;
if (compact) {
return (