Merged in feat/book-425-optimize-campaign-rate-card (pull request #3015)
Feat/book 425 optimize campaign rate card * feat(BOOK-425): design updates to RateCard * feat(BOOK-425): design updates to campaign BookingCodeChip * feat(BOOK-425): fixed breakfast message & booking code chips on select rate and enter detailss * feat(BOOK-425): fixed booking code chip on Booking Confirmation page * fixed draft comments * fixed more comments * feat(BOOK-425): removed fixed height from RateCard banner * fixed another variable comment * fixed more pr comments * fixed more pr comments * updated ratecard campaign standard rate title color * removed deconstructed props Approved-by: Bianca Widstam Approved-by: Erik Tiekstra
This commit is contained in:
@@ -3,6 +3,7 @@ import { useIntl } from "react-intl"
|
||||
|
||||
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
|
||||
import { formatPrice } from "@scandic-hotels/common/utils/numberFormatting"
|
||||
import { BookingCodeChip } from "@scandic-hotels/design-system/BookingCodeChip"
|
||||
import { Button } from "@scandic-hotels/design-system/Button"
|
||||
import { Divider } from "@scandic-hotels/design-system/Divider"
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
@@ -24,6 +25,7 @@ interface RoomProps {
|
||||
isUserLoggedIn: boolean
|
||||
nightsCount: number
|
||||
defaultCurrency: CurrencyEnum
|
||||
showBookingCodeChip?: boolean
|
||||
}
|
||||
|
||||
export default function Room({
|
||||
@@ -33,6 +35,7 @@ export default function Room({
|
||||
isUserLoggedIn,
|
||||
nightsCount,
|
||||
defaultCurrency,
|
||||
showBookingCodeChip = false,
|
||||
}: RoomProps) {
|
||||
const intl = useIntl()
|
||||
const adults = room.adults
|
||||
@@ -68,6 +71,7 @@ export default function Room({
|
||||
"member" in room.roomRate &&
|
||||
room.roomRate.member
|
||||
)
|
||||
|
||||
const isSpecialRate =
|
||||
"corporateCheque" in room.roomRate ||
|
||||
"redemption" in room.roomRate ||
|
||||
@@ -344,7 +348,13 @@ export default function Room({
|
||||
nights={nightsCount}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{showBookingCodeChip && (
|
||||
<BookingCodeChip
|
||||
isCampaign={room.roomRate.rateDefinition.isCampaignRate}
|
||||
bookingCode={room.roomRate.bookingCode}
|
||||
alignCenter
|
||||
/>
|
||||
)}
|
||||
<Divider color="Border/Divider/Subtle" />
|
||||
</>
|
||||
)
|
||||
|
||||
@@ -84,10 +84,12 @@ export default function SummaryUI({
|
||||
const isAllCampaignRate = rooms.every(
|
||||
(room) => room.room.roomRate.rateDefinition.isCampaignRate
|
||||
)
|
||||
|
||||
const containsBookingCodeRate = rooms.find(
|
||||
(r) => r && isBookingCodeRate(r.room.roomRate)
|
||||
)
|
||||
const containsCampaignRate = rooms.find(
|
||||
(r) => r && r.room.roomRate.rateDefinition.isCampaignRate
|
||||
)
|
||||
const showDiscounted = containsBookingCodeRate || isUserLoggedIn
|
||||
|
||||
const totalCurrency = isVoucherRate
|
||||
@@ -136,6 +138,11 @@ export default function SummaryUI({
|
||||
roomCount={rooms.length}
|
||||
isUserLoggedIn={isUserLoggedIn}
|
||||
nightsCount={nights}
|
||||
showBookingCodeChip={
|
||||
rooms.length !== 1 &&
|
||||
(room.roomRate.rateDefinition.isCampaignRate ||
|
||||
!!room.roomRate.bookingCode)
|
||||
}
|
||||
/>
|
||||
))}
|
||||
|
||||
@@ -223,14 +230,17 @@ export default function SummaryUI({
|
||||
toDate={booking.toDate}
|
||||
totalPrice={totalPrice}
|
||||
vat={vat}
|
||||
isCampaignRate={!!containsCampaignRate}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<BookingCodeChip
|
||||
isCampaign={isAllCampaignRate}
|
||||
bookingCode={booking.bookingCode}
|
||||
alignCenter
|
||||
/>
|
||||
{rooms.length === 1 && (isAllCampaignRate || booking.bookingCode) && (
|
||||
<BookingCodeChip
|
||||
isCampaign={isAllCampaignRate}
|
||||
bookingCode={booking.bookingCode}
|
||||
alignCenter
|
||||
/>
|
||||
)}
|
||||
<Divider className={styles.bottomDivider} color="Border/Divider/Subtle" />
|
||||
{showSignupPromo && roomOneMemberPrice && !isUserLoggedIn ? (
|
||||
<SignupPromoDesktop
|
||||
|
||||
@@ -16,6 +16,7 @@ export function mapToPrice(rooms: RoomState[], isMember: boolean) {
|
||||
...room,
|
||||
packages: room.roomFeatures,
|
||||
rateDefinition: {
|
||||
...room.roomRate.rateDefinition,
|
||||
isMemberRate: false,
|
||||
},
|
||||
}
|
||||
@@ -86,6 +87,7 @@ export function mapToPrice(rooms: RoomState[], isMember: boolean) {
|
||||
return {
|
||||
...roomWithoutPrice,
|
||||
rateDefinition: {
|
||||
...roomWithoutPrice.rateDefinition,
|
||||
isMemberRate: true,
|
||||
},
|
||||
price: {
|
||||
@@ -104,6 +106,7 @@ export function mapToPrice(rooms: RoomState[], isMember: boolean) {
|
||||
return {
|
||||
...roomWithoutPrice,
|
||||
rateDefinition: {
|
||||
...roomWithoutPrice.rateDefinition,
|
||||
isMemberRate: true,
|
||||
},
|
||||
price: {
|
||||
|
||||
Reference in New Issue
Block a user