import type { Metadata } from "next";
import { notFound } from "next/navigation";

/**
 * #2205: серверный гейт + noindex для всей ветки /ui-preview/*.
 *
 * Preview-роут (статичная demo-фикстура «денежного экрана») нужен ТОЛЬКО в
 * dev/CI для a11y (axe) / lighthouse. В прод-образе build-arg
 * NEXT_PUBLIC_ENABLE_PREVIEW не задан (см. .forgejo/workflows/deploy-tradein.yml)
 * → ENABLED=false → notFound(): страница отдаёт not-found UI БЕЗ фикстурных
 * данных (никакой фейк-оценки, адреса, суммы — см. #2205).
 *
 * Гейт продублирован здесь (server) и в page.tsx (client) — defense-in-depth:
 * даже если один слой снимут, второй закрывает контент. Server-layout запускает
 * notFound() ДО рендера client-страницы.
 *
 * NB по HTTP-статусу: Next отдаёт этот not-found со статусом 200 (роут
 * СОВПАДАЕТ с существующим сегментом → рендер уже закоммитил 200 до того, как
 * notFound() разрешится; чистый 404 Next отдаёт только для НЕсовпавших путей).
 * Для #2205 это приемлемо: фикстурные данные не отдаются, а robots:noindex ниже
 * убирает страницу из индексации. Жёсткий 404 потребовал бы middleware /
 * next.config-rewrite (вне правок этого фикса).
 *
 * Metadata robots:noindex — belt-and-suspenders для non-prod окружений, где
 * флаг ВКЛЮЧЁН (staging / случайно собранный образ): даже отрендеренную
 * страницу поисковики не индексируют.
 */
const ENABLED = process.env.NEXT_PUBLIC_ENABLE_PREVIEW === "1";

export const metadata: Metadata = {
  robots: { index: false, follow: false },
};

export default function UiPreviewLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  if (!ENABLED) notFound();
  return <>{children}</>;
}
