diff --git a/apps/scandic-web/server/routers/contentstack/destinationOverviewPage/query.ts b/apps/scandic-web/server/routers/contentstack/destinationOverviewPage/query.ts index 7359f7642..6ee128ba6 100644 --- a/apps/scandic-web/server/routers/contentstack/destinationOverviewPage/query.ts +++ b/apps/scandic-web/server/routers/contentstack/destinationOverviewPage/query.ts @@ -34,7 +34,10 @@ import { getDestinationOverviewPageSuccessCounter, } from "./telemetry" -import type { DestinationsData } from "@/types/components/destinationOverviewPage/destinationsList/destinationsData" +import type { + Cities, + DestinationsData, +} from "@/types/components/destinationOverviewPage/destinationsList/destinationsData" import { TrackingChannelEnum, type TrackingSDKPageData, @@ -258,16 +261,25 @@ export const destinationOverviewPageQueryRouter = router({ (cityPage) => cityPage.city === city.cityIdentifier ) + if (!cityPage) { + return null + } + return { id: city.id, name: city.name, hotelIds: hotels, hotelCount: hotels?.length ?? 0, - url: cityPage?.url, + url: cityPage.url, } }) ) + const activeCitiesWithHotelCount: Cities = + citiesWithHotelCount.filter( + (city): city is Cities[number] => !!city + ) + const countryPage = countryPages.find( (countryPage) => countryPage.country === country ) @@ -275,11 +287,11 @@ export const destinationOverviewPageQueryRouter = router({ return { country, countryUrl: countryPage?.url, - numberOfHotels: citiesWithHotelCount.reduce( + numberOfHotels: activeCitiesWithHotelCount.reduce( (acc, city) => acc + city.hotelCount, 0 ), - cities: citiesWithHotelCount, + cities: activeCitiesWithHotelCount, } }) ) diff --git a/apps/scandic-web/types/components/destinationOverviewPage/destinationsList/destinationsData.ts b/apps/scandic-web/types/components/destinationOverviewPage/destinationsList/destinationsData.ts index 219fc07ac..ff331f069 100644 --- a/apps/scandic-web/types/components/destinationOverviewPage/destinationsList/destinationsData.ts +++ b/apps/scandic-web/types/components/destinationOverviewPage/destinationsList/destinationsData.ts @@ -5,12 +5,14 @@ export type DestinationsData = { cities: { id: string name: string - hotelIds: string[] | null + hotelIds: string[] hotelCount: number - url: string | undefined + url: string }[] }[] +export type Cities = DestinationsData[number]["cities"] + export type HotelsSectionProps = { destinations: DestinationsData } @@ -23,5 +25,5 @@ export type DestinationProps = { country: string countryUrl: string | undefined numberOfHotels: number - cities: DestinationsData[number]["cities"] + cities: Cities }