import { useSearchParams } from "next/navigation" import { useIntl } from "react-intl" import { dt } from "@/lib/dt" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { calculatePricesPerNight } from "./utils" import styles from "./priceList.module.css" import type { PriceListProps } from "@/types/components/hotelReservation/selectRate/flexibilityOption" export default function PriceList({ publicPrice = {}, memberPrice = {}, petRoomPackage, }: PriceListProps) { const intl = useIntl() const { localPrice: publicLocalPrice, requestedPrice: publicRequestedPrice } = publicPrice const { localPrice: memberLocalPrice, requestedPrice: memberRequestedPrice } = memberPrice const petRoomLocalPrice = petRoomPackage?.localPrice const petRoomRequestedPrice = petRoomPackage?.requestedPrice const showRequestedPrice = publicRequestedPrice && memberRequestedPrice const searchParams = useSearchParams() const fromDate = searchParams.get("fromDate") const toDate = searchParams.get("toDate") let nights = 1 if (fromDate && toDate) { nights = dt(toDate).diff(dt(fromDate), "days") } const { totalPublicLocalPricePerNight, totalMemberLocalPricePerNight, totalPublicRequestedPricePerNight, totalMemberRequestedPricePerNight, } = calculatePricesPerNight({ publicLocalPrice, memberLocalPrice, publicRequestedPrice, memberRequestedPrice, petRoomLocalPrice, petRoomRequestedPrice, nights, }) return (
{intl.formatMessage({ id: "Standard price" })}
{publicLocalPrice ? (
{totalPublicLocalPricePerNight} {publicLocalPrice.currency} /{intl.formatMessage({ id: "night" })}
) : ( {intl.formatMessage({ id: "n/a" })} )}
{intl.formatMessage({ id: "Member price" })}
{memberLocalPrice ? (
{totalMemberLocalPricePerNight} {memberLocalPrice.currency} /{intl.formatMessage({ id: "night" })}
) : ( - {intl.formatMessage({ id: "Currency Code" })} )}
{intl.formatMessage({ id: "Approx." })}
{showRequestedPrice ? ( {totalPublicRequestedPricePerNight}/ {totalMemberRequestedPricePerNight}{" "} {publicRequestedPrice.currency} ) : ( - / - EUR )}
) }