I am defining the validation in the checkbox where if it is does not checked then it should not go to the next step but i implemented the validation but it successfully go to the next step but showing the error on the checkbox icon
export function isValidEmployement(data) {
const isValidOccupation = data.occupation === null || data.occupation.value === null ? false : regex.isNotEmpty.test(data.occupation);
const isValidSourceOfIncome = data.sourcesOfIncome === null ? false : data.sourcesOfIncome
const isValidFreelancerConsent = data.freelancerConsent;
return {
isValidOccupation: isValidOccupation,
isValidSourceOfIncome: isValidSourceOfIncome,
isValidFreelancerConsent,
allValid:
isValidOccupation && isValidSourceOfIncome && isValidFreelancerConsent,
};
}
this is the function that will handle the validation
const applicantList = [...state.applicantList];
const validationResultEmployment = isValidEmployement(
applicantList[index]
);
applicantList: [
{
//BASIC INFO
fullName: "",
purposeAccount: "",
mobileOtp: "",
dateOfBirth: "",
isTaxResidentOtherThanPakistan: "",
presentAddressConsent: false,
permanentAddressConsent: false,
officeCity: "",
officeHouseNumber: "",
officeLandmark: "",
officeTown: "",
officeCountry: "",
mobileOperator: "",
docType: "",
docNumber: "",
isRecapcha: false,
selectedCardReason: "",
factaStatus: "",
docIssueDate: "",
docExpiryDate: "2099-12-31",
nationality: [],
email: "",
cellNo: "",
confirmationDialogIsOpen: false,
selectedBasicInfoPhoneNumber: {
name: "+92",
value: "+92",
},
iUnderstand: false,
iConsent: false,
validationResultBasicInfo: {
isValidFullName: true,
isValidEmail: true,
isValidRecapcha: true,
isValidDateOfBirth: true,
isValidDocType: true,
isValidDocNumber: true,
isValidDocIssueDate: true,
isValidDocExpiryDate: true,
isValidCellNo: true,
isValidIUnderstand: true,
isValidIConsent: true,
allValid: true,
},
nationalityInformation: [
{
nationality: "",
passportNumber: "",
passportExpiryDate: "",
validationResult: {
isValidNationality: true,
isValidPassportNumber: true,
isValidPassportExpiryDate: true,
allValid: true,
},
},
],
birthCountry: "",
gender: "",
motherMaidenName: "",
fatherName: "",
educationalLevel: "",
isPdf: false,
maritalStatus: "",
residentCountry: {
value: "Pakistan",
},
nationality: [],
passportNumber: "",
passportExpiryDate: "",
presentHouseNumber: "",
presentLandmark: "",
addressType: "",
presentTown: "",
presentCountry: {
value: "Pakistan",
},
officeCountry: {
value: "Pakistan",
},
confirmationDialogIsOpen: false,
presentCity: "",
presentPostalCode: "",
presentHomePhoneNo: "",
nextOfKinpermanentAddress: "",
permanentAddress: "",
permanentHouseNumber: "",
permanentLandmark: "",
presentResidenceHomePhoneCountryCode: "",
incomeTaxConsent: false,
//Consent info
adaAndAdraConsent: false,
freelancerConsent: false,
permanentTown: "",
permanentCountry: {
value: "Pakistan",
},
permanentCity: "",
permanentPostalCode: "",
permanentHomePhoneNo: "",
permanentPhoneCode: {
value: "+92",
},
presentPhoneCode: {
value: "+92",
},
showAddNewAddressTextBox: true,
validationNationalityResult: {
isValidNationality: true,
isValidPassportNumber: true,
isValidPassportExpiryDate: true,
},
validationResultCustomerinfo: {
isValidBirthCountry: true,
isValidGender: true,
isValidNationality: true,
isValidMotherMaidenName: true,
isValidFatherName: true,
isValidEducationalLevel: true,
isValidMaritalStatus: true,
isValidResidentCountry: true,
isValidPresentHouseNumber: true,
isValidPresentLandmark: true,
isValidPresentTown: true,
isValidPresentCountry: true,
isValidPresentCity: true,
isValidPresentPostalCode: true,
isValidPresentHomePhoneNo: true,
isValidPermanentAddress: true,
isValidPermanentHouseNumber: true,
isValidPermanentLandmark: true,
isValidPermanentTown: true,
isValidPermanentCountry: true,
isValidPermanentCity: true,
isValidPermanentPostalCode: true,
isValidDateOfBirth: true,
isValidDocIssueDate: true,
isValidDocExpiryDate: true,
isValidPermanentHomePhoneNo: true,
isValidCorrespondenceAddress: true,
isValidOfficeHouseNumber: true,
isValidOfficeLandMarkError: true,
isValidOfficeTown: true,
isValidOfficeCountry: true,
isValidOfficeError: true,
},
rowAdded: true,
//NEXT OF KIN INFO
kinName: "",
kinRelation: "",
kinContactNo: "",
kinId: "",
nextKinAddress: "",
selectedKinPhoneNumber: "",
kinHouseNumber: "",
kinLandmark: "",
kinTown: "",
kinCountry: "",
kinCity: "",
kinPermanentAddress: "",
kinPostalCode: "",
kinHomePhoneNo: "",
kinConfirmationDialogIsOpen: false,
kinSelectedLandLinePhoneNumber: "",
validationResultNextOfKin: {
isValidKinName: true,
isValidKinRelation: true,
isValidKinContactNo: true,
isValidKinId: true,
isValidNextKinAddress: true,
isValidHouseNumber: true,
isValidLandmark: true,
isValidTown: true,
isValidCountry: true,
isValidCity: true,
isValidPostalCode: true,
isValidHomePhoneNo: true,
},
//EMPLOYMENT INFO
occupation: "",
validationResultEmployment: {
isValidOccupation: true,
isValidSourceOfIncome: true,
isValidFreelancerConsent: true
},
sourcesOfIncome: [],
validationResultFund: {
isValidAddress: true,
isValidCity: true,
isValidCountry: true,
isValidEmployerOrBusinessName: true,
isValidEmploymentType: true,
isValidHomePhone: true,
isValidHomePhoneCountryCode: true,
isValidLegalIdNo: true,
isValidNearestLandmark: true,
isValidContactNumber: true,
isValidOfficePhone: true,
isValidOfficePhoneCountryCode: true,
isValidPostalCode: true,
isValidRelationship: true,
isValidTownTehsil: true,
isValidFundProviderConsent: true,
},
isValidEmploymentBusinessAddress: {
isValidAddress: true,
isValidNearestLandmark: true,
isValidTownTehsil: true,
},
//FACTA INFO
usPerson: "",
usConnections: "",
countryOfTaxResidency: "",
taxIdentificationNumber: "",
confirmationDialogIsOpen: false,
tinReason: "",
tinReasonIfBSelect: "",
countryTaxInfoList: [
{
countryOfTaxResidency: "",
taxIdentificationNumber: "",
tinReason: "",
tinReasonIfBSelect: "",
validationResult: {
isValidCountryOfTaxResidency: true,
isValidTaxIdentificationNumber: true,
isValidTinReason: true,
isValidTinReasonIfB: true,
allValid: true,
},
},
],
validationResultFactaInfo: {
isValidCountryInfoList: true,
isValidUsConnections: true,
isValidUsPerson: true,
},
isValidCountryInfoList: {
isValidcountryOfTaxResidency: true,
isValidTaxIdentificationNumber: true,
isValidTinReason: true,
isValidTinReasonIfB: true,
},
validationResultIncomeAndTax: {
isValidOccupation: true,
isValidSourceOfIncome: true,
isValidFactaStatus: true,
isValidZakatExemption: true,
isValidFiqqah: true,
isValidZakatExemptionsConsent: true,
isValidIncometaxConsent: true,
isValidTaxResidentOtherThanPakistan: true,
},
// Employer Business Detail Info
employerBusinessName: "",
employerBusinessAddress: "",
//ACCOUNT INFORMATION SUBMIT
eftConsent: false,
submitButtoClicked: false,
addAnotherAccountDialog: false,
debitCardList: [
{
debitCardType: {
value: "CARD_TYPE_SONERI_PAYPAK",
},
debitCardName: "",
validationResult: {
isValidDebitCardType: true,
isValidDebitCardName: true,
allValid: true,
},
},
{
debitCardType: {
value: "CARD_TYPE_SONERI_PAYPAK",
},
debitCardName: "",
validationResult: {
isValidDebitCardType: true,
isValidDebitCardName: true,
allValid: true,
},
},
{
debitCardType: {
value: "CARD_TYPE_SONERI_PAYPAK",
},
debitCardName: "",
validationResult: {
isValidDebitCardType: true,
isValidDebitCardName: true,
allValid: true,
},
},
{
debitCardType: {
value: "CARD_TYPE_SONERI_PAYPAK",
},
debitCardName: "",
validationResult: {
isValidDebitCardType: true,
isValidDebitCardName: true,
allValid: true,
},
},
],
bankAccountDetails: [
{
foreignBankName: "",
accountNumber: "",
},
],
natureOfCashWithDraw: [],
raastRegistration: "",
smsAlertActivation: "",
smsAlertActivationConsent: false,
electronicFundTransfer: "",
accountTypeState: account && account.get("productType"),
accountProductId: account && account.get("productId"),
foreignRemittances: false,
fundsTransfer: false,
outwardClearing: false,
annualIncome: "",
monthlyCreditTRansactions: "",
monthlyDebitTransactions: "",
monthlyCredit: "",
monthlyDebit: "",
foreignBankName: "",
accountNumber: "",
// correspondenceAddress: "",
correspondenceAddress: "",
correspondenceNearestLandmark: "",
correspondenceTownTehsil: "",
correspondenceCountry: "",
correspondenceCity: "",
correspondencePostalCode: "",
correspondenceHomePhone: "",
correspondenceHomePhoneCountryCode: "",
eStatementSubscriptionConsent: false,
chequebook: "",
chequebookLeaves: "",
chequebookLabel: "",
chequebookLabel2: false,
successDialogIsOpen: false,
debitCard: "",
debitCardType: "",
debitCardLabel: "",
electronicFundTransfer: "",
electronicFundTransferLabel: "",
eStatementSubscription: [],
zakatExemptions: "",
fiqqah: "",
desiredBranch: "",
zakatExemptionsConsent: false,
selectedProvince: "",
selectedCity: "",
isEStatementSubscription: "",
staffReferal: "",
annualIncomeAmountEstimateRanges: "",
monthlyAccountCreditAmountEstimateRanges: "",
monthlyAccountCreditCountEstimateRanges: "",
monthlyAccountDebitAmountEstimateRanges: "",
monthlyAccountDebitCountEstimateRanges: "",
validationBankAccountsResult: {
isValidForeignBankName: true,
isValidAccountNumber: true,
},
validationResultAccount: {
isValidCashWithdrawl: true,
isValidZakatExemptionDropdown: true,
isValidBankAccountDetails: true,
isValidForeignRemittances: true,
isValidChequeBookConsent2: true,
isValidFundsTransfer: true,
isValidOutwardClearing: true,
isValidEStatementSubscriptionConsent: true,
isValidMonthlyAccountDebitCountEstimateRanges: true,
isValidRaastRegistration: true,
isValidSmsAlertActivationConsent: true,
isValidSmsAlertActivation: true,
isValidCorrespondenceAddress: true,
isValidHouseNumber: true,
isValidLandmark: true,
isValidTown: true,
isValidCountry: true,
isValidCity: true,
isValidPostalCode: true,
isValidHomePhoneNo: true,
isValidChequebook: true,
isValidChequebookLeaves: true,
isValidDebitCard: true,
isValidDebitCardType: true,
isValidElectronicFundTransfer: true,
isValidEStatementSubscription: true,
isValidZakatExemptions: true,
isValidFiqqah: true,
isValidDesiredBranch: true,
isValidStaffReferal: true,
isValidZakatExemption: true,
isValidAnnualIncome: true,
monthlyAccountCreditAmountEstimateRanges: true,
isValidMonthlyDebit: true,
isValidMonthlyAccountCreditCountEstimateRanges: true,
isValidMonthlyCredit: true,
isValidForeignBankAccountDetails: true,
isValidDebitCardConsent: true,
isValidChequeBookConsent: true,
isValidElectronicTransferConsent: true,
isValidZakatExemptionConsent: true,
isValidPurposeAccount: true,
isValidDebitCardReason: true,
isValidIsEStatementSubscription: true,
isValidEftConsent: true,
},
validationResultSingleAccount: {
isValidAnnualIncome: true,
isValidBankAccountDetails: true,
isValidZakatExemption: true,
isValidZakatExemptionConsent: true,
},
rowAddedAccount: true,
//DOCUMENTS
occupation: "",
selectedValue: "",
imagePreviewDialogIsOpen: false,
termsAndConditionDialogIsClicked: false,
disclaimersClicked: false,
showDisclaimersError: false,
livePictureDialogIsOpen: false,
confirmationDialogIsOpen: false,
submitButtonIsClicked: false,
showTermsAndConditionError: false,
showKFSError: false,
errorDialogIsOpen: false,
employerBusinessName: "",
successDialogIsOpen: false,
houseNumber: "",
landmark: "",
town: "",
country: "",
city: "",
postalCode: "",
homePhoneNo: "",
signature: false,
validationResultConsentAndDeclaration: {
isValidDisclaimers: true,
isValidTermsAndConditions: true,
isValidUndertakingOfPersonalFunds: true,
},
validationResultDocuments: {
isValidSignature: true,
},
termsAndConditions: false,
disclaimers: false,
undertakingOfPersonalFunds: false,
KfsClicked: false,
invalidType: [],
},
],
In validationResultEmployment i called the function isValidEmployement
this is my applicantList array inside the state
<Employement
redirectTo={redirectTo}
execStatusGetConfigurations={execStatusGetConfigurations}
validationCheck={validationCheck}
handleTaxesOfInformation={handleTaxesOfInformation}
handleChange={handleChange}
productId={account && account.get("productId")}
execStatusAddFactaCrsInfo={execStatusSaveApplication}
handleFactaRow={handleFactaRow}
handleAccountChange={handleAccountChange}
handleSourceOfIncomeValueChange={handleSourceOfIncomeValueChange}
initialSourceOfIncome={initialSourceOfIncome}
handleTaxesOfInformationSelect={handleTaxesOfInformationSelect}
onConsentChange={onConsentChange}
goBack={goBack}
{...props}
{...state.applicantList[currentActiveStep]}
validationResultFund={{
...state.applicantList[currentActiveStep].validationResultFund,
}}
validationResultEmployment={{
...state.applicantList[currentActiveStep]
.validationResultEmployment,
}}
validationResult={{
...state.applicantList[currentActiveStep]
.validationResultIncomeAndTax,
}}
/>
I am passing the validationResultEmployment to the employment comp as a prop
isValid={
props.validationResultEmployment.isValidFreelancerConsent ===
false
? false
: true
}
and this is i am checking if it is valid but it does not work
I am trying to get the similar implementation but it did not work