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:
Bianca Widstam
2025-12-08 14:23:44 +00:00
parent f37f2a0f34
commit 200cf3f617
9 changed files with 45 additions and 45 deletions

View File

@@ -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)

View File

@@ -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={{

View File

@@ -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(
{

View File

@@ -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

View File

@@ -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 (