import { notFound } from "next/navigation";
import fs from "node:fs/promises";
import path from "node:path";

import Header from "@/components/Current/Header";

import type { PageArgs, LangParams, UriParams } from "@/types/params";

export default async function CurrentContentPage({
  params,
  searchParams,
}: PageArgs<LangParams, UriParams>) {
  try {
    if (!searchParams.uri) {
      throw new Error("Bad URI");
    }

    const filePath = path.join(
      process.cwd(),
      "mockCms",
      params.lang,
      searchParams.uri,
      "data.json"
    );

    const data = await fs.readFile(filePath, { encoding: "utf-8" });

    if (!data) {
      throw new Error("No data");
    }

    const json = JSON.parse(data);

    return (
      <>
        <Header lang={params.lang} pathname={searchParams.uri} />
        {json.hero ? (
          <div
            dangerouslySetInnerHTML={{ __html: json.hero }}
            className="hero-content-overlay hero-content-widget"
          />
        ) : null}
        {json.content ? (
          <main
            className="main l-sections-wrapper"
            role="main"
            id="maincontent"
            dangerouslySetInnerHTML={{ __html: json.content }}
          />
        ) : null}
      </>
    );
  } catch (err) {
    return notFound();
  }
}
