"use client" import { useState } from "react" import { useIntl } from "react-intl" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import { membershipTermsAndConditions } from "@/constants/webHrefs" import LoginButton from "@/components/LoginButton" import Checkbox from "@/components/TempDesignSystem/Form/Checkbox" import Link from "@/components/TempDesignSystem/Link" import Caption from "@/components/TempDesignSystem/Text/Caption" import Footnote from "@/components/TempDesignSystem/Text/Footnote" import { useRoomContext } from "@/contexts/Details/Room" import useLang from "@/hooks/useLang" import { formatPrice } from "@/utils/numberFormatting" import MemberPriceModal from "../../MemberPriceModal" import styles from "./joinScandicFriendsCard.module.css" import type { JoinScandicFriendsCardProps } from "@/types/components/hotelReservation/enterDetails/details" import { CurrencyEnum } from "@/types/enums/currency" export default function JoinScandicFriendsCard({ name = "join", }: JoinScandicFriendsCardProps) { const lang = useLang() const intl = useIntl() const { room, actions: { updateJoin }, } = useRoomContext() const [isMemberPriceModalOpen, setIsMemberPriceModalOpen] = useState(false) function onChange(event: { target: { value: boolean } }) { updateJoin(event.target.value) if (event.target.value) { setIsMemberPriceModalOpen(true) } } if (!("member" in room.roomRate) || !room.roomRate.member) { return null } const list = [ { title: intl.formatMessage({ defaultMessage: "Friendly room rates", }), }, { title: intl.formatMessage({ defaultMessage: "Earn & spend points", }), }, { title: intl.formatMessage({ defaultMessage: "Join for free", }), }, ] const saveOnJoiningLabel = intl.formatMessage( { defaultMessage: "Get the member room price: {amount}", }, { amount: formatPrice( intl, room.roomRate.member.localPrice.pricePerStay ?? 0, room.roomRate.member.localPrice.currency ?? CurrencyEnum.Unknown ), } ) return (