import Container from "@/app/components/shared/container"
import { HeaderWrwpper } from "@/app/components/shared/main-header"
import MainLink from "@/app/components/shared/main-link"
import PropertyDetails from "@/app/components/properityDetails/ProperityDetails"
import { getTranslations } from "next-intl/server"
import { Metadata } from "next"
import { getSpacificProperyData } from "@/lib/serverActions"
import { cache } from "react"

type Props = {
    params: Promise<{ locale: string | any, slug:string }> // Handle both promise and object
}
const getSingleProperty = cache(async (slug:string, locale:string):Promise<any> => {
    

  const {data} = await getSpacificProperyData(slug, locale);

  return data 

})

export async function generateMetadata({params}:Props) : Promise<Metadata> {
  const { locale, slug } = await params
  const singleProperty = await getSingleProperty(slug,locale)
  return{
         title:singleProperty?.title,
         description: singleProperty?.description,
         openGraph:{
          images:[
              {
                  url:singleProperty?.images[0]?.original_url,
              }
          ]
         }
  }
} 
export default async function page({ params }: Props) {
    const { locale, slug } = await params

    return <PropertyDetails slug={slug} locale={locale || "en"} />
}

// import React from "react"
// import ProperityDetails from "../../../../components/properityDetails/ProperityDetails"
// interface LayoutProps {
//     params: Promise<{ locale: string | any; slug: string }>
// }
// const page = async ({ params }: { params: LayoutProps }) => {
//     // @ts-ignore
//     const { locale, slug } = params
//     return <ProperityDetails slug={slug} locale={locale} />
// }

// export default page
