import { eq } from "drizzle-orm"; import { Megaphone } from "lucide-react"; import { notFound, redirect } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { updateAd } from "@/actions/admin-ads"; import Link from "@/components/link"; import { Button } from "@/components/ui/button"; import { db, WebsiteAds } from "@/lib/db"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { EditAdDeleteButton } from "../edit-ad-delete-button"; export default async function EditAd({ params, }: { params: Promise<{ id: string }>; }) { const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.PAGES_VIEW, session.user.rank)) { redirect("/admin"); } const { id } = await params; let ad: typeof WebsiteAds.$inferSelect | null = null; try { const [row] = await db .select() .from(WebsiteAds) .where(eq(WebsiteAds.id, BigInt(id))) .limit(1); ad = row ?? null; } catch { notFound(); } if (!ad) notFound(); const t = await getTranslations("pages.admin.ads"); return (

{t("edit")} #{String(ad.id)}

← {t("title")}

); }