Files
rf4-spotter/apps/web/src/components/SourceBadge.astro
T

19 lines
1017 B
Plaintext

---
import { safeHttpUrl } from "../lib/urls";
const { source, href, tone = "source" } = Astro.props as { source: string; href?: string | null; tone?: "source" | "incomplete" | "verified" };
const labels: Record<string, string> = {
"rf4-official": "RF4 · официальный",
rf4db: "RF4DB",
"rf4stat-fishing": "RF4-STAT · уловы",
"rf4stat-post": "RF4-STAT · посты",
rf4map: "RF4MAP",
"rf4posts-spot": "RF4 Posts",
players: "Игроки RF4",
"manual-import": "Архивный импорт",
};
const label = labels[source] ?? source;
const mark = source === "players" ? "♟" : source === "rf4-official" ? "★" : "↗";
const safeHref = safeHttpUrl(href);
---
{safeHref ? <a class="source-chip" data-source={source} data-tone={tone} href={safeHref} target="_blank" rel="noreferrer" title={`Открыть источник: ${label}`}><i>{mark}</i><span>{label}</span></a> : <span class="source-chip" data-source={source} data-tone={tone}><i>{mark}</i><span>{label}</span></span>}