import { dt } from "@/lib/dt" import { ArrowRightIcon } from "@/components/Icons" import Divider from "@/components/TempDesignSystem/Divider" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import { getIntl } from "@/i18n" import { getLang } from "@/i18n/serverContext" import ToggleSidePeek from "./ToggleSidePeek" import styles from "./summary.module.css" // TEMP const rooms = [ { adults: 1, type: "Cozy cabin", }, ] export default async function Summary() { const intl = await getIntl() const lang = getLang() const fromDate = dt().locale(lang).format("ddd, D MMM") const toDate = dt().add(1, "day").locale(lang).format("ddd, D MMM") const diff = dt(toDate).diff(fromDate, "days") const totalAdults = rooms.reduce((total, room) => total + room.adults, 0) const adults = intl.formatMessage( { id: "booking.adults" }, { totalAdults: totalAdults } ) const nights = intl.formatMessage( { id: "booking.nights" }, { totalNights: diff } ) const addOns = [ { price: intl.formatMessage({ id: "Included" }), title: intl.formatMessage({ id: "King bed" }), }, { price: intl.formatMessage({ id: "Included" }), title: intl.formatMessage({ id: "Breakfast buffet" }), }, ] const mappedRooms = Array.from( rooms .reduce((acc, room) => { const currentRoom = acc.get(room.type) acc.set(room.type, { total: currentRoom ? currentRoom.total + 1 : 1, type: room.type, }) return acc }, new Map()) .values() ) return (
{mappedRooms.map( (room, idx) => `${room.total} x ${room.type}${mappedRooms.length > 1 && idx + 1 !== mappedRooms.length ? ", " : ""}` )} {fromDate} {toDate}
{`${nights}, ${adults}`} {intl.formatMessage( { id: "{amount} {currency}" }, { amount: "4536", currency: "SEK" } )}
{addOns.map((addOn) => (
{addOn.title} {addOn.price}
))}
{intl.formatMessage({ id: "Total incl VAT" })} {intl.formatMessage( { id: "{amount} {currency}" }, { amount: "4686", currency: "SEK" } )}
{intl.formatMessage({ id: "Approx." })} {intl.formatMessage( { id: "{amount} {currency}" }, { amount: "455", currency: "EUR" } )}
{intl.formatMessage({ id: "Member price" })} {intl.formatMessage( { id: "{amount} {currency}" }, { amount: "4219", currency: "SEK" } )}
{intl.formatMessage({ id: "Approx." })} {intl.formatMessage( { id: "{amount} {currency}" }, { amount: "412", currency: "EUR" } )}
) }