"use client" import { useEffect } from "react" import { useIntl } from "react-intl" import { dt } from "@/lib/dt" import { CheckCircleIcon, DirectionsIcon, EmailIcon, LinkIcon, } from "@/components/Icons" import CrossCircleIcon from "@/components/Icons/CrossCircle" import IconChip from "@/components/TempDesignSystem/IconChip" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { Toast } from "@/components/TempDesignSystem/Toasts" import useLang from "@/hooks/useLang" import { formatPrice } from "@/utils/numberFormatting" import { useMyStayTotalPriceStore } from "../stores/myStayTotalPrice" import SummaryCard from "./SummaryCard" import styles from "./bookingSummary.module.css" import type { Hotel } from "@/types/hotel" import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation" interface BookingSummaryProps { booking: BookingConfirmation["booking"] hotel: Hotel } export default function BookingSummary({ booking, hotel, }: BookingSummaryProps) { const intl = useIntl() const lang = useLang() const { totalPrice, currencyCode, addRoomPrice } = useMyStayTotalPriceStore() useEffect(() => { addRoomPrice({ id: booking.confirmationNumber ?? "", totalPrice: booking.totalPrice, currencyCode: booking.currencyCode, isMainBooking: true, }) }, [booking, addRoomPrice]) const directionsUrl = `https://www.google.com/maps/dir/?api=1&destination=${hotel.location.latitude},${hotel.location.longitude}` const isPaid = booking.rateDefinition.cancellationRule !== "CancellableBefore6PM" const bookingDate = dt(booking.createDateTime) .locale(lang) .format("D MMMM YYYY") return (