Feat(SW-1275) cancel booking my stay * feat(SW-1276) UI implementation Desktop part 1 for MyStay * feat(SW-1276) UI implementation Desktop part 2 for MyStay * feat(SW-1276) UI implementation Mobile part 1 for MyStay * refactor: move files from MyStay/MyStay to MyStay * feat(SW-1276) Sidepeek implementation * feat(SW-1276): Refactoring * feat(SW-1276) UI implementation Mobile part 2 for MyStay * feat(SW-1276): translations * feat(SW-1276) fixed skeleton * feat(SW-1276): Added missing translations * feat(SW-1276) fixed translations * feat(SW-1275) cancel modal * feat(SW-1275): Mutate cancel booking * feat(SW-1275) added translations * feat(SW-1275) match current cancellationReason * feat(SW-1275) Added modal for manage stay * feat(SW-1275) Added missing icon * feat(SW-1275) New Dont cancel button * feat(SW-1275) Added preperation for Cancellation number * feat(SW-1275): added --modal-box-shadow * feat(SW-1718) Add to calendar * feat(SW-1718) general add to calendar Approved-by: Niclas Edenvin
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { dt } from "@/lib/dt"
|
|
|
|
import type { IntlShape } from "react-intl"
|
|
|
|
import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation"
|
|
|
|
export function formatStayDetails({
|
|
booking,
|
|
lang,
|
|
intl,
|
|
}: {
|
|
booking: BookingConfirmation["booking"]
|
|
lang: string
|
|
intl: IntlShape
|
|
}) {
|
|
const checkInDate = dt(booking.checkInDate)
|
|
.locale(lang)
|
|
.format("dddd D MMM YYYY")
|
|
const checkOutDate = dt(booking.checkOutDate)
|
|
.locale(lang)
|
|
.format("dddd D MMM YYYY")
|
|
const diff = dt(checkOutDate).diff(checkInDate, "days")
|
|
|
|
const nightsText = intl.formatMessage(
|
|
{ id: "{totalNights, plural, one {# night} other {# nights}}" },
|
|
{ totalNights: diff }
|
|
)
|
|
const adultsText = intl.formatMessage(
|
|
{ id: "{totalAdults, plural, one {# adult} other {# adults}}" },
|
|
{ totalAdults: booking.adults }
|
|
)
|
|
const childrenText = intl.formatMessage(
|
|
{ id: "{totalChildren, plural, one {# child} other {# children}}" },
|
|
{ totalChildren: booking.childrenAges?.length }
|
|
)
|
|
|
|
return {
|
|
checkInDate,
|
|
checkOutDate,
|
|
nightsText,
|
|
adultsText,
|
|
childrenText,
|
|
}
|
|
}
|