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

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 isHidden = await isBookingWidgetHidden()

  if (isHidden) {
    return null
  }

  const locations = await getLocations()

  if (!locations || "error" in locations) {
    return null
  }

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