fix: hydrate store with updated values
This commit is contained in:
@@ -144,34 +144,33 @@ export function createDetailsStore(
|
|||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
name: detailsStorageName,
|
name: detailsStorageName,
|
||||||
onRehydrateStorage() {
|
onRehydrateStorage(prevState) {
|
||||||
return function (state) {
|
return function (state) {
|
||||||
if (state) {
|
if (state) {
|
||||||
const validatedBedType = bedTypeSchema.safeParse(state.data)
|
const validatedBedType = bedTypeSchema.safeParse(state.data)
|
||||||
if (validatedBedType.success) {
|
if (validatedBedType.success !== state.isValid["select-bed"]) {
|
||||||
state.actions.updateValidity(StepEnum.selectBed, true)
|
state.isValid["select-bed"] = validatedBedType.success
|
||||||
} else {
|
|
||||||
state.actions.updateValidity(StepEnum.selectBed, false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const validatedBreakfast = breakfastStoreSchema.safeParse(
|
const validatedBreakfast = breakfastStoreSchema.safeParse(
|
||||||
state.data
|
state.data
|
||||||
)
|
)
|
||||||
if (validatedBreakfast.success) {
|
if (validatedBreakfast.success !== state.isValid.breakfast) {
|
||||||
state.actions.updateValidity(StepEnum.breakfast, true)
|
state.isValid.breakfast = validatedBreakfast.success
|
||||||
} else {
|
|
||||||
state.actions.updateValidity(StepEnum.breakfast, false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const detailsSchema = isMember
|
const detailsSchema = isMember
|
||||||
? signedInDetailsSchema
|
? signedInDetailsSchema
|
||||||
: guestDetailsSchema
|
: guestDetailsSchema
|
||||||
const validatedDetails = detailsSchema.safeParse(state.data)
|
const validatedDetails = detailsSchema.safeParse(state.data)
|
||||||
if (validatedDetails.success) {
|
if (validatedDetails.success !== state.isValid.details) {
|
||||||
state.actions.updateValidity(StepEnum.details, true)
|
state.isValid.details = validatedDetails.success
|
||||||
} else {
|
|
||||||
state.actions.updateValidity(StepEnum.details, false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const mergedState = merge(state.data, prevState.data, {
|
||||||
|
arrayMerge,
|
||||||
|
})
|
||||||
|
state.data = mergedState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user