Merged in fix/SW-2425-filter-label-lokalise (pull request #2602)

fix(SW-2425): filter description should be translated with lokalise

* fix(SW-2425): filter description should be translated with lokalise


Approved-by: Anton Gunnarsson
This commit is contained in:
Bianca Widstam
2025-08-06 14:09:32 +00:00
parent 4b3d59f75b
commit 9f4e2b3c45
7 changed files with 58 additions and 6 deletions

View File

@@ -12,6 +12,7 @@ import { ChildBedTypeEnum } from "@scandic-hotels/trpc/enums/childBedTypeEnum"
import { CancellationRuleEnum } from "@/constants/booking"
import { useBookingConfirmationStore } from "@/stores/booking-confirmation"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import Modal from "@/components/Modal"
import { formatPrice } from "@/utils/numberFormatting"
@@ -178,7 +179,11 @@ export default function ReceiptRoom({
<div>
<Typography variant="Body/Paragraph/mdRegular">
<p className={styles.uiTextHighContrast}>
{feature.description}
{getFeatureDescription(
feature.code,
feature.description,
intl
)}
</p>
</Typography>
</div>

View File

@@ -16,6 +16,7 @@ import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
import { OldDSButton as Button } from "@scandic-hotels/design-system/OldDSButton"
import Subtitle from "@scandic-hotels/design-system/Subtitle"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import { formatPrice } from "@/utils/numberFormatting"
import styles from "./priceChangeSummary.module.css"
@@ -156,7 +157,11 @@ export default function PriceChangeSummary({
key={feature.itemCode}
>
<Caption color="uiTextMediumContrast">
{feature.description}
{getFeatureDescription(
feature.code,
feature.description,
intl
)}
</Caption>
<Caption color="uiTextMediumContrast">
{formatPrice(

View File

@@ -7,6 +7,7 @@ import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
import { Typography } from "@scandic-hotels/design-system/Typography"
import { ChildBedMapEnum } from "@scandic-hotels/trpc/enums/childBedMapEnum"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import Modal from "@/components/Modal"
import { formatPrice } from "@/utils/numberFormatting"
@@ -224,7 +225,13 @@ export default function Room({
? room.roomFeatures.map((feature) => (
<Typography key={feature.code} variant="Body/Paragraph/mdRegular">
<div className={styles.entry}>
<p>{feature.description}</p>
<p>
{getFeatureDescription(
feature.code,
feature.description,
intl
)}
</p>
<div className={styles.prices}>
<span className={styles.price}>

View File

@@ -4,6 +4,8 @@ import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
import { useMyStayStore } from "@/stores/my-stay"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import Row from "./Row"
export default function Packages() {
@@ -17,7 +19,9 @@ export default function Packages() {
item.code as RoomPackageCodeEnum
)
)
.map((item) => item.description) || []
.map((item) =>
getFeatureDescription(item.code, item.description, intl)
) || []
)
if (!packages.length) {

View File

@@ -1,6 +1,7 @@
"use client"
import { useIntl } from "react-intl"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import { formatPrice } from "@/utils/numberFormatting"
import RegularRow from "../Regular"
@@ -21,7 +22,7 @@ export default function PackagesRow({ packages }: PackagesProps) {
return packages?.map((pkg) => (
<RegularRow
key={pkg.code}
label={pkg.description}
label={getFeatureDescription(pkg.code, pkg.description, intl)}
value={formatPrice(
intl,
+pkg.localPrice.totalPrice,

View File

@@ -0,0 +1,23 @@
import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
import type { IntlShape } from "react-intl"
export function getFeatureDescription(
code: string,
description: string,
intl: IntlShape
): string {
const roomFeatureDescriptions: Record<string, string> = {
[RoomPackageCodeEnum.ACCESSIBILITY_ROOM]: intl.formatMessage({
defaultMessage: "Accessible room",
}),
[RoomPackageCodeEnum.ALLERGY_ROOM]: intl.formatMessage({
defaultMessage: "Allergy-friendly room",
}),
[RoomPackageCodeEnum.PET_ROOM]: intl.formatMessage({
defaultMessage: "Pet-friendly room",
}),
}
return roomFeatureDescriptions[code] ?? description
}

View File

@@ -12,6 +12,7 @@ import GuestDetails from "@/components/HotelReservation/MyStay/GuestDetails"
import PriceType from "@/components/HotelReservation/MyStay/PriceType"
import { hasModifiableRate } from "@/components/HotelReservation/MyStay/utils"
import { sumPackages } from "@/components/HotelReservation/utils"
import { getFeatureDescription } from "@/components/HotelReservation/utils/getRoomFeatureDescription"
import ImageGallery from "@/components/ImageGallery"
import Accordion from "@/components/TempDesignSystem/Accordion"
import AccordionItem from "@/components/TempDesignSystem/Accordion/AccordionItem"
@@ -351,7 +352,13 @@ export default function BookedRoomSidePeek({
item.code as RoomPackageCodeEnum
)
)
.map((item) => item.description)
.map((item) =>
getFeatureDescription(
item.code,
item.description,
intl
)
)
.join(", ")}
</p>
</Typography>