import { notFound } from "next/navigation";

import { ErrorBanner } from "@/components/shared/error-banner";

import { BannerForm } from "../_components/banner-form/banner-form";
import { fetchBackendBannerById } from "../_lib/banners-server-api";

type PageProps = {
  params: Promise<{ id: string }>;
};

export default async function BannerUpdatePage({ params }: PageProps) {
  const { id } = await params;
  const recordId = Number(id);

  if (!Number.isFinite(recordId)) {
    notFound();
  }

  const { banner: record, categoryOptions, errorMessage } =
    await fetchBackendBannerById(recordId);

  if (!record) {
    notFound();
  }

  return (
    <>
      <ErrorBanner message={errorMessage} className="mb-4" />
      <BannerForm mode="update" initial={record} categoryOptions={categoryOptions} />
    </>
  );
}
