import { HomeSection } from '@/components/homePage/homesection'
import { getHomeFields, getHomePage, type HomeLanguage } from '@/lib/api'
import type { Metadata } from 'next'
import { unstable_rethrow } from 'next/navigation'

interface HomePageProps {
  searchParams: Promise<{ lang?: string | string[] }>
}

function getLanguage(value: string | string[] | undefined): HomeLanguage {
  const lang = Array.isArray(value) ? value[0] : value

  return lang === 'ps' || lang === 'dr' ? lang : 'en'
}

export async function generateMetadata({ searchParams }: HomePageProps): Promise<Metadata> {
  try {
    const { lang } = await searchParams
    const data = await getHomePage(getLanguage(lang))
    const { meta_title, meta_description, focus_keyword } = data.seo
    return {
      title: meta_title,
      description: meta_description,
      keywords: focus_keyword,
    }
  } catch (error) {
    unstable_rethrow(error)
    return {}
  }
}

export default async function Home({ searchParams }: HomePageProps) {
  const { lang } = await searchParams
  const data = await getHomePage(getLanguage(lang))
  const fields = getHomeFields(data)

  return <HomeSection fields={fields} />
}
