import { Newspaper } from "lucide-react"; import Link from "next/link"; import { notFound, redirect } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { deleteArticle, updateArticle } from "@/actions/admin-articles"; import { ArticleForm } from "@/components/admin/article-form"; import { Button } from "@/components/ui/button"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { prisma } from "@/lib/prisma"; export default async function EditArticle({ params, searchParams, }: { params: Promise<{ id: string }>; searchParams: Promise<{ error?: string }>; }) { const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.NEWS_VIEW, session.user.rank)) { redirect("/admin"); } const { id } = await params; const { error } = await searchParams; const t = await getTranslations("pages.admin.articles"); const article = await prisma.websiteArticles .findUnique({ where: { id: BigInt(id) }, select: { id: true, slug: true, title: true, shortStory: true, fullStory: true, image: true, }, }) .catch(() => null); if (!article) notFound(); return (

{t("form.title")}

← {t("title")}

{error ? (

Error: {error}

) : null} { "use server"; fd.set("id", String(article.id)); await updateArticle(fd); }} defaultValues={{ title: article.title, slug: article.slug, image: article.image, shortStory: article.shortStory, fullStory: article.fullStory, }} />
); }