import TripAdvisorChip from "@scandic-hotels/booking-flow/components/TripAdvisorChip" import { SidePeekEnum } from "@scandic-hotels/booking-flow/stores/sidepeek" import { dt } from "@scandic-hotels/common/dt" import { getSingleDecimal } from "@scandic-hotels/common/utils/numberFormatting" import { Divider } from "@scandic-hotels/design-system/Divider" import ImageGallery from "@scandic-hotels/design-system/ImageGallery" import SkeletonShimmer from "@scandic-hotels/design-system/SkeletonShimmer" import { Typography } from "@scandic-hotels/design-system/Typography" import { FacilityToIcon } from "@/components/ContentType/HotelPage/data" import Alert from "@/components/TempDesignSystem/Alert" import { getIntl } from "@/i18n" import { mapApiImagesToGalleryImages } from "@/utils/imageGallery" import ReadMore from "../../ReadMore" import { getHotelAlertsForBookingDates } from "../../utils" import HotelDescription from "./HotelDescription" import styles from "./hotelInfoCard.module.css" import type { Hotel } from "@scandic-hotels/trpc/types/hotel" import type { SelectRateBooking } from "@/types/components/hotelReservation/selectRate/selectRate" export type HotelInfoCardProps = { booking: SelectRateBooking hotel: Hotel } export async function HotelInfoCard({ booking, hotel }: HotelInfoCardProps) { const intl = await getIntl() const sortedFacilities = hotel.detailedFacilities .sort((a, b) => b.sortOrder - a.sortOrder) .slice(0, 5) const galleryImages = mapApiImagesToGalleryImages(hotel.galleryImages || []) const bookingFromDate = dt(booking.fromDate) const bookingToDate = dt(booking.toDate) const specialAlerts = getHotelAlertsForBookingDates( hotel.specialAlerts, bookingFromDate, bookingToDate ) return (
{hotel.ratings?.tripAdvisor && ( )}

{hotel.name}

{intl.formatMessage( { defaultMessage: "{address}, {city} ∙ {distanceToCityCenterInKm} km to city center", }, { address: hotel.address.streetAddress, city: hotel.address.city, distanceToCityCenterInKm: getSingleDecimal( hotel.location.distanceToCentre / 1000 ), } )}

{hotel.hotelContent.texts.descriptions?.medium}

{sortedFacilities?.map((facility) => (

{facility.name}

))}
{specialAlerts.map((alert) => ( ))}
) } function SpecialAlert({ alert }: { alert: Hotel["specialAlerts"][number] }) { return (
) } export function HotelInfoCardSkeleton() { return (

{[1, 2, 3, 4, 5]?.map((id) => { return (
) })}
) }