import { notFound } from "next/navigation"

import { request } from "@/lib/request"
import { GetCurrentBlockPage } from "@/lib/graphql/Query/CurrentBlockPage.graphql"

import ContentPage from "@/components/Current/ContentPage"

import type { PageArgs, LangParams, UriParams } from "@/types/params"
import type { GetCurrentBlockPageData } from "@/types/requests/currentBlockPage"

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

    const response = await request<GetCurrentBlockPageData>(
      GetCurrentBlockPage,
      {
        locale: params.lang,
        url: searchParams.uri,
      }
    )

    if (!response.data?.all_current_blocks_page?.total) {
      console.log("#### DATA ####")
      console.log(response.data)
      console.log("SearchParams URI: ", searchParams.uri)
      throw new Error("Not found")
    }

    return (
      <ContentPage
        data={response.data}
        uri={searchParams.uri}
        lang={params.lang}
      />
    )
  } catch (err) {
    return notFound()
  }
}
