"use client"; import Link from "next/link"; import { useTranslation } from "react-i18next"; import { ChevronRight } from "lucide-react"; import { ModuleScaffold } from "@/components/admin/module-scaffold"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { PRD_INTEGRATION_ACCESS_ANY } from "@/lib/admin-prd"; import { useAdminProfile } from "@/stores/admin-session"; import { adminHasAnyPermission } from "@/lib/admin-permissions"; type HubCard = { href: string; titleKey: string; descKey: string; requiredAny: readonly string[]; }; const HUB_CARDS: HubCard[] = [ { href: "/admin/rules/plays", titleKey: "hub.playsTitle", descKey: "hub.playsDesc", requiredAny: ["prd.play_switch.manage", "prd.odds.manage"], }, { href: "/admin/rules/odds", titleKey: "hub.oddsTitle", descKey: "hub.oddsDesc", requiredAny: ["prd.odds.manage", "prd.rebate.manage", "prd.rebate.view"], }, { href: "/admin/jackpot", titleKey: "hub.jackpotTitle", descKey: "hub.jackpotDesc", requiredAny: ["prd.jackpot.manage", "prd.jackpot.view"], }, { href: "/admin/risk/cap", titleKey: "hub.riskCapTitle", descKey: "hub.riskCapDesc", requiredAny: ["prd.risk_cap.manage", "prd.risk_cap.view"], }, { href: "/admin/config/integration-sites", titleKey: "hub.integrationTitle", descKey: "hub.integrationDesc", requiredAny: PRD_INTEGRATION_ACCESS_ANY, }, ]; export function ConfigHubScreen() { const { t } = useTranslation("config"); const profile = useAdminProfile(); const visible = HUB_CARDS.filter((card) => adminHasAnyPermission(profile?.permissions, card.requiredAny), ); return (

{t("hub.title")}

{t("hub.description")}

{visible.map((card) => ( {t(card.titleKey)} {t(card.descKey)} ))}
); }