import { asc } from "drizzle-orm"; import { redirect } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { createEmailTemplate, deleteEmailTemplate, updateEmailTemplate, } from "@/actions/admin-email-templates"; import { Button } from "@/components/ui/button"; import { db, EmailTemplates } from "@/lib/db"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; // TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. // See: https://nextjs.org/docs/app/guides/migrating-to-cache-components export const instant = false; export default async function AdminEmailTemplates() { const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.PAGES_VIEW, session.user.rank)) { redirect("/admin"); } const t = await getTranslations("pages.admin.emailTemplates"); let templates: (typeof EmailTemplates.$inferSelect)[] = []; try { templates = await db .select() .from(EmailTemplates) .orderBy(asc(EmailTemplates.name)); } catch { templates = []; } return (

{t("newTemplate")}