import { SolutionsSection } from '@/components/solutionspage/solutionssection'
import { getSolutionsFields, getSolutionsPage, type SiteLanguage } from '@/lib/api'
import type { Metadata } from 'next'
import { unstable_rethrow } from 'next/navigation'

interface SolutionsPageProps {
  searchParams: Promise<{ lang?: string | string[] }>
}

function getLanguage(value: string | string[] | undefined): SiteLanguage {
  const lang = Array.isArray(value) ? value[0] : value
  return lang === 'dr' || lang === 'ps' ? lang : 'en'
}

export async function generateMetadata({ searchParams }: SolutionsPageProps): Promise<Metadata> {
  try {
    const { lang } = await searchParams
    const data = await getSolutionsPage(getLanguage(lang))

    return {
      title: data.seo.meta_title || data.title,
      description: data.seo.meta_description || undefined,
      keywords: data.seo.focus_keyword || undefined,
    }
  } catch (error) {
    unstable_rethrow(error)
    return {}
  }
}

export default async function SolutionsPage({ searchParams }: SolutionsPageProps) {
  const { lang } = await searchParams
  const data = await getSolutionsPage(getLanguage(lang))

  return <SolutionsSection fields={getSolutionsFields(data)} />
}
