fix: validate member in enter details store

This commit is contained in:
Christel Westerberg
2024-11-01 15:10:42 +01:00
parent ccca27d2e6
commit 3e41703df1
7 changed files with 31 additions and 14 deletions

View File

@@ -5,7 +5,10 @@ import { create, useStore } from "zustand"
import { bedTypeSchema } from "@/components/HotelReservation/EnterDetails/BedType/schema"
import { breakfastStoreSchema } from "@/components/HotelReservation/EnterDetails/Breakfast/schema"
import { detailsSchema } from "@/components/HotelReservation/EnterDetails/Details/schema"
import {
guestDetailsSchema,
signedInDetailsSchema,
} from "@/components/HotelReservation/EnterDetails/Details/schema"
import { getQueryParamsForEnterDetails } from "@/components/HotelReservation/SelectRate/RoomSelection/utils"
import type { BookingData } from "@/types/components/hotelReservation/enterDetails/bookingData"
@@ -39,7 +42,8 @@ interface EnterDetailsState {
export function initEditDetailsState(
currentStep: StepEnum,
searchParams: ReadonlyURLSearchParams
searchParams: ReadonlyURLSearchParams,
isMember: boolean
) {
const isBrowser = typeof window !== "undefined"
const sessionData = isBrowser
@@ -93,6 +97,7 @@ export function initEditDetailsState(
initialData = { ...initialData, ...validatedBreakfast.data }
isValid[StepEnum.breakfast] = true
}
const detailsSchema = isMember ? signedInDetailsSchema : guestDetailsSchema
const validatedDetails = detailsSchema.safeParse(inputUserData)
if (validatedDetails.success) {
validPaths.push(StepEnum.payment)