import { notFound } from "next/navigation";

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

import { UserWidgetForm } from "../_components/user-widget-form/user-widget-form";
import { fetchBackendUserWidgetById } from "../_lib/user-widgets-server-api";

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

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

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

  const { userWidget: record, categoryOptions, errorMessage } =
    await fetchBackendUserWidgetById(recordId);

  if (!record) {
    notFound();
  }

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