Merged in fix/BOOK-584-red-price-strikethrough (pull request #3298)
fix(BOOK-584): show discounted if specialrate or member * fix(BOOK-584): show discounted if specialrate or member Approved-by: Anton Gunnarsson
This commit is contained in:
@@ -10,7 +10,7 @@ import Subtitle from "@scandic-hotels/design-system/Subtitle"
|
||||
|
||||
import { useIsLoggedIn } from "../../../../hooks/useIsLoggedIn"
|
||||
import SignupPromoDesktop from "../../../SignupPromo/Desktop"
|
||||
import { isBookingCodeRate } from "./utils"
|
||||
import { isSpecialRate } from "./utils"
|
||||
|
||||
import styles from "./rateSummary.module.css"
|
||||
|
||||
@@ -84,7 +84,7 @@ export function DesktopSummary({
|
||||
const isAllRoomsSelected = selectedRates.state === "ALL_SELECTED"
|
||||
|
||||
const showDiscounted =
|
||||
isUserLoggedIn || selectedRates.rates.some(isBookingCodeRate)
|
||||
isUserLoggedIn || selectedRates.rates.some(isSpecialRate)
|
||||
|
||||
const mainRoomRate = selectedRates.rates.at(0)
|
||||
const mainRoomCurrency = getRoomCurrency(mainRoomRate)
|
||||
|
||||
@@ -17,7 +17,7 @@ import useLang from "../../../../../../hooks/useLang"
|
||||
import PriceDetailsModal from "../../../../../PriceDetailsModal"
|
||||
import SignupPromoDesktop from "../../../../../SignupPromo/Desktop"
|
||||
import { useRateTitles } from "../../../Rooms/RoomsList/RoomListItem/Rates/useRateTitles"
|
||||
import { isBookingCodeRate } from "../../utils"
|
||||
import { isSpecialRate } from "../../utils"
|
||||
import Room from "../Room"
|
||||
|
||||
import styles from "./summaryContent.module.css"
|
||||
@@ -55,11 +55,9 @@ export default function SummaryContent({
|
||||
? selectedRates.rates[0].member
|
||||
: null
|
||||
|
||||
const containsBookingCodeRate = selectedRates.rates.find(
|
||||
(r) => r && isBookingCodeRate(r)
|
||||
)
|
||||
const hasSpecialRate = selectedRates.rates.find((r) => r && isSpecialRate(r))
|
||||
|
||||
const cointainsCode = selectedRates.rates.find((r) => r?.type === "code")
|
||||
const containsCode = selectedRates.rates.find((r) => r?.type === "code")
|
||||
const containsCampaignRate = selectedRates.rates.some(
|
||||
(r) => r?.type === "campaign"
|
||||
)
|
||||
@@ -68,7 +66,7 @@ export default function SummaryContent({
|
||||
return null
|
||||
}
|
||||
|
||||
const showDiscounted = containsBookingCodeRate || isUserLoggedIn
|
||||
const showDiscounted = hasSpecialRate || isUserLoggedIn
|
||||
const totalRegularPrice = selectedRates?.totalPrice?.local?.regularPrice
|
||||
? selectedRates.totalPrice.local.regularPrice
|
||||
: 0
|
||||
@@ -137,7 +135,7 @@ export default function SummaryContent({
|
||||
isMember={isUserLoggedIn && idx === 0}
|
||||
showBookingCodeChip={
|
||||
selectedRates.rates.length !== 1 &&
|
||||
(room.rateDefinition.isCampaignRate || isBookingCodeRate(room))
|
||||
(room.rateDefinition.isCampaignRate || isSpecialRate(room))
|
||||
}
|
||||
/>
|
||||
)
|
||||
@@ -332,16 +330,15 @@ export default function SummaryContent({
|
||||
/>
|
||||
</div>
|
||||
|
||||
{selectedRates.rates.length === 1 &&
|
||||
(containsBookingCodeRate || cointainsCode) && (
|
||||
<div>
|
||||
<BookingCodeChip
|
||||
alignCenter
|
||||
bookingCode={input.bookingCode}
|
||||
isCampaign={containsCampaignRate}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{selectedRates.rates.length === 1 && (hasSpecialRate || containsCode) && (
|
||||
<div>
|
||||
<BookingCodeChip
|
||||
alignCenter
|
||||
bookingCode={input.bookingCode}
|
||||
isCampaign={containsCampaignRate}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{!isUserLoggedIn && memberPrice ? (
|
||||
<SignupPromoDesktop
|
||||
memberPrice={{
|
||||
|
||||
@@ -10,7 +10,7 @@ import Modal from "@scandic-hotels/design-system/Modal"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { ChildBedMapEnum } from "@scandic-hotels/trpc/enums/childBedMapEnum"
|
||||
|
||||
import { isBookingCodeRate } from "../../utils"
|
||||
import { isSpecialRate } from "../../utils"
|
||||
|
||||
import styles from "./room.module.css"
|
||||
|
||||
@@ -70,7 +70,7 @@ export default function Room({
|
||||
const childBedCrib = childrenBeds?.get(ChildBedMapEnum.IN_CRIB)
|
||||
const childBedExtraBed = childrenBeds?.get(ChildBedMapEnum.IN_EXTRA_BED)
|
||||
|
||||
const showDiscounted = isBookingCodeRate(room.roomRate) || isMember
|
||||
const showDiscounted = isSpecialRate(room.roomRate) || isMember
|
||||
|
||||
const adultsMsg = intl.formatMessage(
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
|
||||
import { useSelectRateContext } from "../../../../../contexts/SelectRate/SelectRateContext"
|
||||
import { useIsLoggedIn } from "../../../../../hooks/useIsLoggedIn"
|
||||
import { isBookingCodeRate } from "../utils"
|
||||
import { isSpecialRate } from "../utils"
|
||||
import SummaryContent from "./Content"
|
||||
|
||||
import styles from "./mobileSummary.module.css"
|
||||
@@ -58,10 +58,8 @@ export function MobileSummary() {
|
||||
}
|
||||
}, [isSummaryOpen])
|
||||
|
||||
const containsBookingCodeRate = selectedRates.rates.find(
|
||||
(r) => r && isBookingCodeRate(r)
|
||||
)
|
||||
const showDiscounted = containsBookingCodeRate || isUserLoggedIn
|
||||
const hasSpecialRate = selectedRates.rates.find((r) => r && isSpecialRate(r))
|
||||
const showDiscounted = hasSpecialRate || isUserLoggedIn
|
||||
|
||||
if (!selectedRates.totalPrice) {
|
||||
return null
|
||||
|
||||
@@ -2,7 +2,7 @@ import { RateTypeEnum } from "@scandic-hotels/common/constants/rateType"
|
||||
|
||||
import type { Product } from "@scandic-hotels/trpc/types/roomAvailability"
|
||||
|
||||
export function isBookingCodeRate(product: Product | undefined | null) {
|
||||
export function isSpecialRate(product: Product | undefined | null) {
|
||||
if (!product) return false
|
||||
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user