"use client" import { useIntl } from "react-intl" import { formatPrice } from "@scandic-hotels/common/utils/numberFormatting" import Footnote from "@scandic-hotels/design-system/Footnote" import { Typography } from "@scandic-hotels/design-system/Typography" import { useBookingFlowConfig } from "../../bookingFlowConfig/bookingFlowConfigContext" import styles from "./signupPromo.module.css" type SignupPromoProps = { memberPrice: { amount: number currency: string } badgeContent?: string isEnterDetailsPage?: boolean } export default function SignupPromoDesktop({ memberPrice, badgeContent, isEnterDetailsPage = false, }: SignupPromoProps) { const intl = useIntl() if (!memberPrice) { return null } const { amount, currency } = memberPrice const price = formatPrice(intl, amount, currency) return memberPrice ? (
{badgeContent && {badgeContent}}
) : null } function Message({ price, isEnterDetailsPage, }: { price: string isEnterDetailsPage: boolean }) { const intl = useIntl() const config = useBookingFlowConfig() if (config.variant === "partner-sas") { return intl.formatMessage( { id: "signup.toGetTheScandicMemberPriceWithValue", defaultMessage: "To get the Scandic member price {price}, enter your ID or join while booking.", }, { span: (str) => ( {str} ), price, } ) } if (isEnterDetailsPage) { return intl.formatMessage( { id: "signup.toGetTheMemberRoomPrice", defaultMessage: "To get the member room price {price}, log in or join when completing the booking.", }, { span: (str) => ( {str} ), price, } ) } return intl.formatMessage( { id: "signup.toGetTheMemberPrice", defaultMessage: "To get the member price {price}, log in or join when completing the booking.", }, { span: (str) => ( {str} ), price, } ) }