"use client" import { zodResolver } from "@hookform/resolvers/zod" import { FormProvider, useForm } from "react-hook-form" import { useIntl } from "react-intl" import { useEnterDetailsStore } from "@/stores/enter-details" import SpecialRequests from "@/components/HotelReservation/EnterDetails/Details/SpecialRequests" import Button from "@/components/TempDesignSystem/Button" import CountrySelect from "@/components/TempDesignSystem/Form/Country" import Input from "@/components/TempDesignSystem/Form/Input" import Phone from "@/components/TempDesignSystem/Form/Phone" import Footnote from "@/components/TempDesignSystem/Text/Footnote" import { useRoomContext } from "@/contexts/Details/Room" import JoinScandicFriendsCard from "./JoinScandicFriendsCard" import { multiroomDetailsSchema } from "./schema" import styles from "./details.module.css" import type { MultiroomDetailsSchema } from "@/types/components/hotelReservation/enterDetails/details" const formID = "enter-details" export default function Details() { const intl = useIntl() const { canProceedToPayment, lastRoom } = useEnterDetailsStore((state) => ({ canProceedToPayment: state.canProceedToPayment, lastRoom: state.lastRoom, })) const { actions: { updateDetails }, idx, room, roomNr, } = useRoomContext() const initialData = room.guest const isPaymentNext = idx === lastRoom const methods = useForm({ criteriaMode: "all", mode: "all", resolver: zodResolver(multiroomDetailsSchema), reValidateMode: "onChange", values: { countryCode: initialData.countryCode, email: initialData.email, firstName: initialData.firstName, join: initialData.join, lastName: initialData.lastName, membershipNo: initialData.membershipNo, phoneNumber: initialData.phoneNumber, specialRequest: { comment: room.specialRequest.comment, }, }, }) const guestIsGoingToJoin = methods.watch("join") const guestIsMember = methods.watch("membershipNo") return (
{guestIsMember ? null : }
{intl.formatMessage({ id: "Guest information" })} {guestIsGoingToJoin ? null : ( )}
) }