Merged in fix/SW-3194-cross-validation-enter-details (pull request #2604)
fix(SW-3194): crossvalidation for multiroom enter details * fix(SW-3194): crossvalidation for multiroom enter details * fix(SW-3194): use getValues Approved-by: Hrishikesh Vaipurkar
This commit is contained in:
@@ -37,7 +37,7 @@ export default function Details() {
|
||||
}))
|
||||
|
||||
const {
|
||||
actions: { updateDetails, setIncomplete },
|
||||
actions: { updateDetails, updatePartialGuestData, setIncomplete },
|
||||
idx,
|
||||
room,
|
||||
roomNr,
|
||||
@@ -93,6 +93,7 @@ export default function Details() {
|
||||
formState: { isValid, errors },
|
||||
setValue,
|
||||
watch,
|
||||
getValues,
|
||||
} = methods
|
||||
|
||||
const { trackFormSubmit } = useFormTracking(
|
||||
@@ -114,9 +115,21 @@ export default function Details() {
|
||||
if (isValid) {
|
||||
handleSubmit(updateDetails)()
|
||||
} else {
|
||||
updatePartialGuestData({
|
||||
firstName: getValues("firstName")?.toString(),
|
||||
lastName: getValues("lastName")?.toString(),
|
||||
membershipNo: getValues("membershipNo")?.toString(),
|
||||
})
|
||||
setIncomplete()
|
||||
}
|
||||
}, [handleSubmit, isValid, setIncomplete, updateDetails])
|
||||
}, [
|
||||
handleSubmit,
|
||||
isValid,
|
||||
setIncomplete,
|
||||
updateDetails,
|
||||
updatePartialGuestData,
|
||||
getValues,
|
||||
])
|
||||
|
||||
useEffect(updateDetailsStore, [updateDetailsStore])
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ export const multiroomErrors = {
|
||||
} as const
|
||||
|
||||
export type CrossValidationData = {
|
||||
firstName: string
|
||||
lastName: string
|
||||
firstName: string | undefined
|
||||
lastName: string | undefined
|
||||
membershipNo: string | undefined
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ export function getMultiroomDetailsSchema(
|
||||
(data) =>
|
||||
!crossValidationData.some(
|
||||
(room) =>
|
||||
room.firstName.toLowerCase() === data.firstName.toLowerCase() &&
|
||||
room.lastName.toLowerCase() === data.lastName.toLowerCase()
|
||||
room.firstName?.toLowerCase() === data.firstName.toLowerCase() &&
|
||||
room.lastName?.toLowerCase() === data.lastName.toLowerCase()
|
||||
),
|
||||
{
|
||||
message: multiroomErrors.FIRST_AND_LAST_NAME_UNIQUE,
|
||||
@@ -85,8 +85,8 @@ export function getMultiroomDetailsSchema(
|
||||
(data) =>
|
||||
!crossValidationData.some(
|
||||
(room) =>
|
||||
room.firstName.toLowerCase() === data.firstName.toLowerCase() &&
|
||||
room.lastName.toLowerCase() === data.lastName.toLowerCase()
|
||||
room.firstName?.toLowerCase() === data.firstName.toLowerCase() &&
|
||||
room.lastName?.toLowerCase() === data.lastName.toLowerCase()
|
||||
),
|
||||
{
|
||||
message: multiroomErrors.FIRST_AND_LAST_NAME_UNIQUE,
|
||||
|
||||
@@ -43,7 +43,7 @@ export default function Details({ user }: DetailsProps) {
|
||||
}))
|
||||
|
||||
const {
|
||||
actions: { updateDetails, setIncomplete },
|
||||
actions: { updateDetails, updatePartialGuestData, setIncomplete },
|
||||
room,
|
||||
roomNr,
|
||||
idx,
|
||||
@@ -89,6 +89,7 @@ export default function Details({ user }: DetailsProps) {
|
||||
subscribe,
|
||||
setValue,
|
||||
watch,
|
||||
getValues,
|
||||
} = methods
|
||||
|
||||
const { trackFormSubmit } = useFormTracking(
|
||||
@@ -117,9 +118,21 @@ export default function Details({ user }: DetailsProps) {
|
||||
if (formState.isValid) {
|
||||
handleSubmit(onSubmit)()
|
||||
} else {
|
||||
updatePartialGuestData({
|
||||
firstName: getValues("firstName")?.toString(),
|
||||
lastName: getValues("lastName")?.toString(),
|
||||
membershipNo: getValues("membershipNo")?.toString(),
|
||||
})
|
||||
setIncomplete()
|
||||
}
|
||||
}, [handleSubmit, formState.isValid, onSubmit, setIncomplete])
|
||||
}, [
|
||||
handleSubmit,
|
||||
formState.isValid,
|
||||
onSubmit,
|
||||
setIncomplete,
|
||||
updatePartialGuestData,
|
||||
getValues,
|
||||
])
|
||||
|
||||
useEffect(updateDetailsStore, [updateDetailsStore])
|
||||
const countryCode = watch("countryCode")
|
||||
|
||||
Reference in New Issue
Block a user