import { serverClient } from "@/lib/trpc/server"

import HotelCard from "@/components/HotelReservation/HotelCard"
import HotelFilter from "@/components/HotelReservation/SelectHotel/HotelFilter"
import { ChevronRightIcon } from "@/components/Icons"
import StaticMap from "@/components/Maps/StaticMap"
import Link from "@/components/TempDesignSystem/Link"
import { getIntl } from "@/i18n"
import { getLang, setLang } from "@/i18n/serverContext"

import styles from "./page.module.css"

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

export default async function SelectHotelPage({
  params,
}: PageArgs<LangParams>) {
  const intl = await getIntl()
  setLang(params.lang)

  const hotelData = await serverClient().hotel.getHotel({
    hotelId: "879",
    language: getLang(),
  })

  if (!hotelData) {
    return null
  }

  const { attributes } = hotelData
  const hotels = [attributes]

  const hotelFilters = await serverClient().hotel.getFilters({
    hotelId: "879",
  })

  const tempSearchTerm = "Stockholm"

  return (
    <main className={styles.main}>
      <section>
        <StaticMap
          city={tempSearchTerm}
          width={340}
          height={180}
          zoomLevel={11}
          mapType="roadmap"
        />
        <Link className={styles.link} color="burgundy" href="#">
          {intl.formatMessage({ id: "Show map" })}
          <ChevronRightIcon color="burgundy" className={styles.icon} />
        </Link>
        <HotelFilter filters={hotelFilters} />
      </section>
      <section className={styles.hotelCards}>
        {hotels.map((hotel) => (
          <HotelCard key={hotel.name} hotel={hotel} />
        ))}
      </section>
    </main>
  )
}
