import { asc } from "drizzle-orm"; import { redirect } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { StatusCard } from "@/components/admin/dashboard"; import Link from "@/components/link"; import { Button } from "@/components/ui/button"; import { db, WebsiteHelpCenterCategories } from "@/lib/db"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; export default async function AdminHelpQuestions() { const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.PAGES_VIEW, session.user.rank)) { redirect("/admin"); } const t = await getTranslations("pages.admin.helpCenter"); let entries: (typeof WebsiteHelpCenterCategories.$inferSelect)[] = []; try { entries = await db .select() .from(WebsiteHelpCenterCategories) .orderBy( asc(WebsiteHelpCenterCategories.position), asc(WebsiteHelpCenterCategories.id), ) .limit(500); } catch { entries = []; } const smallBoxes = entries.filter((e) => e.smallBox).length; const withButton = entries.filter((e) => e.buttonText).length; return (

{t("entries")}

{entries.length === 0 ? (
{t("noEntries")}
) : ( {entries.map((e) => ( ))}
Pos. {t("colTitle")} Button Small box
{e.position} {e.name} {e.buttonText || "—"} {e.smallBox ? "Yes" : "No"} {t("edit")}
)}
); }