"use client" import { getSingleDecimal } from "@scandic-hotels/common/utils/numberFormatting" import { Alert } from "../Alert" import { Divider } from "../Divider" import { FacilityToIcon } from "../FacilityToIcon" import ImageGallery, { GalleryImage } from "../ImageGallery" import SkeletonShimmer from "../SkeletonShimmer" import { TripAdvisorChip } from "../TripAdvisorChip" import { Typography } from "../Typography" import HotelDescription from "./HotelDescription" import styles from "./hotelInfoCard.module.css" import { useIntl } from "react-intl" import { AlertTypeEnum } from "@scandic-hotels/common/constants/alert" import { FacilityEnum } from "@scandic-hotels/common/constants/facilities" export type HotelInfoCardProps = { hotel: { id: string name: string url: string | null ratings?: { tripAdvisor?: { rating: number } } } description: string address: { streetAddress: string city: string kilometersToCentre: number } galleryImages: GalleryImage[] alerts: SpecialAlertProps["alert"][] facilities: { id: FacilityEnum name: string }[] slot?: React.ReactNode } export function HotelInfoCard({ hotel, galleryImages, address, facilities, alerts, description, slot, }: HotelInfoCardProps) { const intl = useIntl() const firstFacilities = facilities.slice(0, 5) return (
{hotel.ratings?.tripAdvisor && ( )}

{hotel.name}

{intl.formatMessage( { id: "hotelInfoCard.kmToCityCenter", defaultMessage: "{address}, {city} ∙ {distanceToCityCenterInKm} km to city center", }, { address: address.streetAddress, city: address.city, distanceToCityCenterInKm: getSingleDecimal( address.kilometersToCentre ), } )}

{description}

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

{facility.name}

))}
{slot}
{slot}
{alerts.map((alert) => ( ))}
) } type SpecialAlertProps = { alert: { id: string; type: AlertTypeEnum; heading: string; text: string } } function SpecialAlert({ alert }: SpecialAlertProps) { return (
) } export function HotelInfoCardSkeleton() { return (

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