From 4e9ee82efac3d4ef02898bdbb764439e268dbab9 Mon Sep 17 00:00:00 2001 From: Hrishikesh Vaipurkar Date: Mon, 31 Mar 2025 13:28:23 +0200 Subject: [PATCH] feat: SW-2028 Fix after rebase --- .../RoomsList/RoomListItem/Rates/Redemptions.tsx | 14 +++++++++++--- .../RateCard/Points/Points.stories.tsx | 9 +++++++++ .../lib/components/RateCard/Points/index.tsx | 16 ++++++++++------ .../lib/components/RateCard/types.ts | 1 + 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx index 1cc70da38..5c9cfb212 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx @@ -17,6 +17,7 @@ interface RedemptionsProps extends SharedRateCardProps { export default function Redemptions({ handleSelectRate, redemptions, + roomTypeCode, }: RedemptionsProps) { const intl = useIntl() const rateTitles = useRateTitles() @@ -39,7 +40,10 @@ export default function Redemptions({ let selectedRateCode = "" if (selectedRate?.product && "redemption" in selectedRate.product) { - selectedRateCode = selectedRate.product.redemption.rateCode + selectedRateCode = + selectedRate.roomTypeCode === roomTypeCode + ? selectedRate.product.redemption.rateCode + : "" } function handleSelect(rateCode: string) { @@ -61,10 +65,12 @@ export default function Redemptions({ } : undefined, currency: "PTS", - isDisabled: !!r.redemption.localPrice.pointsPerNight, // TODO: FIX - points: r.redemption.localPrice.pointsPerNight.toString(), + isDisabled: !r.redemption.hasEnoughPoints, + points: r.redemption.localPrice.pointsPerStay.toString(), + rateCode: r.redemption.rateCode, })) + const notEnoughPoints = rates.every((rate) => rate.isDisabled) const firstRedemption = redemptions[0] const bannerText = firstRedemption.breakfastIncluded ? `${rewardNight} ∙ ${breakfastIncluded}` @@ -79,6 +85,8 @@ export default function Redemptions({ rates={rates} rateTitle={rateTitles[firstRedemption.rate].title} selectedRate={selectedRateCode} + isNotEnoughPoints={notEnoughPoints} + notEnoughPointsText={intl.formatMessage({ id: "Not enough points" })} /> ) } diff --git a/packages/design-system/lib/components/RateCard/Points/Points.stories.tsx b/packages/design-system/lib/components/RateCard/Points/Points.stories.tsx index e1a6a147d..3e73cb05d 100644 --- a/packages/design-system/lib/components/RateCard/Points/Points.stories.tsx +++ b/packages/design-system/lib/components/RateCard/Points/Points.stories.tsx @@ -37,6 +37,7 @@ export const Default: Story = { { points: '20000', currency: 'PTS', + rateCode: 'REDNIGHT7', }, { points: '15000', @@ -45,6 +46,7 @@ export const Default: Story = { price: '250', currency: 'EUR', }, + rateCode: 'REDNIGHT7A', }, { points: '10000', @@ -53,6 +55,7 @@ export const Default: Story = { price: '500', currency: 'EUR', }, + rateCode: 'REDNIGHT7B', }, ], selectedRate: undefined, @@ -70,6 +73,7 @@ export const WithDisabledRates: Story = { points: '20000', currency: 'PTS', isDisabled: true, + rateCode: 'REDNIGHT7', }, { points: '15000', @@ -79,6 +83,7 @@ export const WithDisabledRates: Story = { price: '250', currency: 'EUR', }, + rateCode: 'REDNIGHT7A', }, { points: '10000', @@ -87,6 +92,7 @@ export const WithDisabledRates: Story = { price: '500', currency: 'EUR', }, + rateCode: 'REDNIGHT7B', }, ], selectedRate: '2', @@ -103,6 +109,7 @@ export const NotEnoughPoints: Story = { { points: '20000', currency: 'PTS', + rateCode: 'REDNIGHT7', }, { points: '15000', @@ -111,6 +118,7 @@ export const NotEnoughPoints: Story = { price: '250', currency: 'EUR', }, + rateCode: 'REDNIGHT7A', }, { points: '10000', @@ -119,6 +127,7 @@ export const NotEnoughPoints: Story = { price: '500', currency: 'EUR', }, + rateCode: 'REDNIGHT7B', }, ], selectedRate: undefined, diff --git a/packages/design-system/lib/components/RateCard/Points/index.tsx b/packages/design-system/lib/components/RateCard/Points/index.tsx index 62034e097..147f914f3 100644 --- a/packages/design-system/lib/components/RateCard/Points/index.tsx +++ b/packages/design-system/lib/components/RateCard/Points/index.tsx @@ -60,11 +60,15 @@ export default function PointsRateCard({
- + {rates.map((rate, index) => (
@@ -73,7 +77,7 @@ export default function PointsRateCard({ {`${rate.points} `} - {`${rate.currency} ${rate.additionalPrice && ' + '}`} + {`${rate.currency} ${rate.additionalPrice ? ' + ' : ''}`}

@@ -83,7 +87,7 @@ export default function PointsRateCard({

{`${rate.additionalPrice.price} `} - {rate.currency} + {rate.additionalPrice.currency}

@@ -98,9 +102,9 @@ export default function PointsRateCard({