import Link from "next/link"; import { savePoints } from "@/actions/admin-radio-points"; import { StatusCard } from "@/components/admin/dashboard"; import { siteSettings } from "@/lib/services/site-settings"; import { Star } from "lucide-react"; import { getTranslations } from "next-intl/server"; export const dynamic = "force-dynamic"; export const metadata = { title: "Radio Points" }; const DEFAULTS = { radio_points_enabled: "0", radio_points_per_minute: "1", radio_points_currency: "credits", radio_points_max_per_day: "0", radio_points_min_listeners: "0", } as const; const CURRENCIES = ["credits", "duckets", "diamonds", "points"] as const; export default async function AdminRadioPointsPage({ searchParams, }: { searchParams: Promise<{ saved?: string }>; }) { const t = await getTranslations("pages.admin.radio"); const { saved } = await searchParams; const values = { radio_points_enabled: await siteSettings .get("radio_points_enabled", DEFAULTS.radio_points_enabled) .catch(() => DEFAULTS.radio_points_enabled), radio_points_per_minute: await siteSettings .get("radio_points_per_minute", DEFAULTS.radio_points_per_minute) .catch(() => DEFAULTS.radio_points_per_minute), radio_points_currency: await siteSettings .get("radio_points_currency", DEFAULTS.radio_points_currency) .catch(() => DEFAULTS.radio_points_currency), radio_points_max_per_day: await siteSettings .get("radio_points_max_per_day", DEFAULTS.radio_points_max_per_day) .catch(() => DEFAULTS.radio_points_max_per_day), radio_points_min_listeners: await siteSettings .get("radio_points_min_listeners", DEFAULTS.radio_points_min_listeners) .catch(() => DEFAULTS.radio_points_min_listeners), }; const enabled = (values.radio_points_enabled ?? "0") === "1"; const perMinute = values.radio_points_per_minute ?? DEFAULTS.radio_points_per_minute; const currency = (values.radio_points_currency ?? DEFAULTS.radio_points_currency) as string; const maxPerDay = values.radio_points_max_per_day ?? DEFAULTS.radio_points_max_per_day; const minListeners = values.radio_points_min_listeners ?? DEFAULTS.radio_points_min_listeners; const selectedCurrency = CURRENCIES.includes(currency as (typeof CURRENCIES)[number]) ? currency : "credits"; return (

{t("pointsForm.title")}

{t("pointsForm.subtitle")}

{saved === "1" ? (

{t("pointsForm.saved")}

) : null}

{t("pointsForm.settings")}

{t("pointsForm.pointsEnabledHint")}

{t("pointsForm.currencyHint")}

{t("pointsForm.pointsPerMinuteHint")}

{t("pointsForm.maxPerDayHint")}

{t("pointsForm.minListenersHint")}

); }