import React from "react"; type Status = "granted" | "prompt" | "denied" | "error"; export default function BaseRomCard({ name, platform, region, isLinked, status, isCached, onRemoveCache, onUnlink, onEnsurePermission, onImportCache, }: { name: string; platform: "GB" | "GBC" | "GBA" | "NDS"; region: string; isLinked: boolean; status: Status; isCached: boolean; onRemoveCache?: () => void; onUnlink?: () => void; onEnsurePermission?: () => void; onImportCache?: () => void; }) { const ringAndBg = isCached ? "ring-emerald-400/40 bg-emerald-500/10" : isLinked ? status === "granted" ? "ring-emerald-400/40 bg-emerald-500/10" : status === "prompt" ? "ring-amber-400/40 bg-amber-500/10" : "ring-rose-400/40 bg-rose-500/10" : "card ring-[var(--border)]"; const statusText = isCached ? "Cached copy available" : isLinked ? status === "granted" ? "Linked and ready" : status === "prompt" ? "Linked, permission required" : status === "denied" ? "Linked, permission denied" : "Link error" : "Not linked"; const dotColor = isCached ? "bg-emerald-400" : isLinked ? status === "granted" ? "bg-emerald-400" : status === "prompt" ? "bg-amber-400" : "bg-rose-400" : "bg-white/30"; return (
{platform} {region}
{name}
{statusText}
{(isCached || isLinked) && (
{isCached ? ( ) : isLinked ? ( ) : null} {!isCached && isLinked && status !== "granted" && ( )} {!isCached && isLinked && status === "granted" && ( )}
)}
); }