fix(SW-2728): update totalpoints in my stay * fix(SW-2728): update totalpoints in my stay Approved-by: Simon.Emanuelsson
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
"use client"
|
|
import { useMyStayStore } from "@/stores/my-stay"
|
|
|
|
import { sumPackages } from "../../utils"
|
|
import PriceType from "../PriceType"
|
|
|
|
import type { PriceType as _PriceType } from "@/types/components/hotelReservation/myStay/myStay"
|
|
|
|
export default function TotalPrice() {
|
|
const { bookedRoom, formattedTotalPrice, rooms } = useMyStayStore(
|
|
(state) => ({
|
|
bookedRoom: state.bookedRoom,
|
|
formattedTotalPrice: state.totalPrice,
|
|
rooms: state.rooms,
|
|
})
|
|
)
|
|
|
|
const totalCheques = rooms.reduce((total, room) => total + room.cheques, 0)
|
|
const totalPoints = rooms.reduce((total, room) => total + room.totalPoints, 0)
|
|
|
|
let totalPrice = rooms.reduce((total, room) => total + room.totalPrice, 0)
|
|
if (rooms.some((room) => room.vouchers)) {
|
|
const pkgsSum = sumPackages(rooms.flatMap((r) => r.packages || []))
|
|
totalPrice = pkgsSum.price
|
|
}
|
|
|
|
return (
|
|
<PriceType
|
|
cheques={totalCheques}
|
|
formattedTotalPrice={formattedTotalPrice}
|
|
isCancelled={bookedRoom.isCancelled}
|
|
currencyCode={bookedRoom.currencyCode}
|
|
priceType={bookedRoom.priceType}
|
|
rateDefinition={bookedRoom.rateDefinition}
|
|
roomPoints={totalPoints}
|
|
totalPrice={totalPrice}
|
|
vouchers={bookedRoom.vouchers}
|
|
/>
|
|
)
|
|
}
|