import { getLocations, getSiteConfig } from "@/lib/trpc/memoizedRequests"

import { getLang } from "@/i18n/serverContext"

import BookingWidgetClient from "./Client"

import type { BookingWidgetProps } from "@/types/components/bookingWidget"

export function preload() {
  void getLocations()
}

export default async function BookingWidget({
  type,
  bookingWidgetSearchParams,
}: BookingWidgetProps) {
  const lang = await getLang()
  const locations = await getLocations()
  const siteConfig = await getSiteConfig(lang)

  if (!locations || "error" in locations || siteConfig?.bookingWidgetDisabled) {
    return null
  }

  return (
    <BookingWidgetClient
      locations={locations.data}
      type={type}
      bookingWidgetSearchParams={bookingWidgetSearchParams}
    />
  )
}
