Files
web/packages/design-system/lib/components/HotelCard/HotelPointsRow/index.tsx
Anton Gunnarsson 16fbdb7ae0 Merged in fix/refactor-currency-display (pull request #3434)
fix(SW-3616): Handle EuroBonus point type everywhere

* Add tests to formatPrice

* formatPrice

* More work replacing config with api points type

* More work replacing config with api points type

* More fixing with currency

* maybe actually fixed it

* Fix MyStay

* Clean up

* Fix comments

* Merge branch 'master' into fix/refactor-currency-display

* Fix calculateTotalPrice for EB points + SF points + cash


Approved-by: Joakim Jäderberg
2026-01-15 09:32:17 +00:00

56 lines
1.5 KiB
TypeScript

import { useIntl } from "react-intl"
import { RoomPrice } from "../../HotelCard/RoomPrice"
import { Typography } from "../../Typography"
import styles from "./hotelPointsRow.module.css"
import { PointType } from "@scandic-hotels/common/constants/pointType"
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
import { getCurrencyText } from "../../currency-utils"
export type PointsRowProps = {
pointsPerStay: number
additionalPricePerStay?: number
additionalPriceCurrency?: string
pointsType: PointType | null
}
export function HotelPointsRow({
pointsPerStay,
additionalPricePerStay,
additionalPriceCurrency,
pointsType,
}: PointsRowProps) {
const intl = useIntl()
const currency = getCurrencyText(
intl,
CurrencyEnum.POINTS,
pointsPerStay,
pointsType
)
return (
<RoomPrice
className={styles.roomPrice}
price={pointsPerStay}
currency={currency}
includePerNight={false}
>
{additionalPricePerStay ? (
<>
<Typography variant="Body/Paragraph/mdBold">
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
<span> + </span>
</Typography>
<Typography variant="Title/Subtitle/md">
<span>{additionalPricePerStay}</span>
</Typography>
<Typography variant="Body/Paragraph/mdBold">
<span> {additionalPriceCurrency}</span>
</Typography>
</>
) : null}
</RoomPrice>
)
}