import { Suspense } from "react" import { type HotelSortItem, HotelSortOption, } from "@scandic-hotels/trpc/types/hotel" import { getFiltersFromHotels } from "@scandic-hotels/trpc/utils/getFiltersFromHotels" import { getHotelsByCSFilter } from "@/lib/trpc/memoizedRequests" import { getIntl } from "@/i18n" import { getLang } from "@/i18n/serverContext" import HotelListingDataProvider from "@/providers/HotelListingDataProvider" import CampaignHotelListingSkeleton from "./CampaignHotelListingSkeleton" import CampaignHotelListingClient from "./Client" interface CampaignHotelListingProps { heading: string preamble?: string | null hotelIds: string[] bookingCode?: string | null visibleCountMobile?: 3 | 6 visibleCountDesktop?: 3 | 6 isMainBlock?: boolean } export default async function CampaignHotelListing({ heading, preamble, hotelIds, bookingCode, visibleCountMobile = 3, visibleCountDesktop = 6, isMainBlock = false, }: CampaignHotelListingProps) { const intl = await getIntl() const lang = await getLang() const hotels = await getHotelsByCSFilter({ hotelsToInclude: hotelIds }) if (!hotels.length) { return null } const allFilters = getFiltersFromHotels(hotels, lang) const sortItems: HotelSortItem[] = [ { label: intl.formatMessage({ id: "common.name", defaultMessage: "Name", }), value: HotelSortOption.Name, }, { label: intl.formatMessage({ id: "common.tripAdvisorRating", defaultMessage: "Tripadvisor rating", }), value: HotelSortOption.TripAdvisorRating, }, ] return ( }> ) }