@smvtech/x-flux 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -5465,6 +5465,7 @@ type TEDCFlowContext = {
5465
5465
  order: TVisaOrder | null;
5466
5466
  questionnaire: TQuestionnaire | null;
5467
5467
  applicants: Record<string, TEDCApplicant>;
5468
+ applicantIds: Set<string>;
5468
5469
  activeApplicant: string | null;
5469
5470
  setActiveApplicant: (application_id: string | null) => void;
5470
5471
  loading: boolean;
@@ -5499,16 +5500,16 @@ declare function getSignedUrlFromAsset(docId: string): Promise<string | null>;
5499
5500
  declare function getDisplayableQuestions(questions: TEDCApplicant["questions"], questionAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
5500
5501
  declare function getDisplayableDocuments(questions: TEDCApplicant["questions"], documentAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
5501
5502
  declare function getValidationErrors(validations?: TAnswer["validations"] | null): ValidationResult;
5502
- declare function getValidationResult(question: TEDCApplicant["questions"][0], applicants?: Record<string, TEDCApplicant>): ValidationResult;
5503
- declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): Array<{
5503
+ declare function getValidationResult(question: TEDCApplicant["questions"][0], applicantIds: Set<string>): ValidationResult;
5504
+ declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): Array<{
5504
5505
  name: string;
5505
5506
  validationResult: ValidationResult;
5506
5507
  }>;
5507
- declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): Array<{
5508
+ declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): Array<{
5508
5509
  name: string;
5509
5510
  validationResult: ValidationResult;
5510
5511
  }>;
5511
- declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): {
5512
+ declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): {
5512
5513
  isComplete: boolean;
5513
5514
  questionValidations: Array<{
5514
5515
  name: string;
@@ -5567,6 +5568,7 @@ declare const EDCFlow: {
5567
5568
  order: TVisaOrder | null;
5568
5569
  questionnaire: TQuestionnaire | null;
5569
5570
  applicants: Record<string, TEDCApplicant>;
5571
+ applicantIds: Set<string>;
5570
5572
  activeApplicant: string | null;
5571
5573
  setActiveApplicant: (application_id: string | null) => void;
5572
5574
  loading: boolean;
package/dist/index.d.ts CHANGED
@@ -5465,6 +5465,7 @@ type TEDCFlowContext = {
5465
5465
  order: TVisaOrder | null;
5466
5466
  questionnaire: TQuestionnaire | null;
5467
5467
  applicants: Record<string, TEDCApplicant>;
5468
+ applicantIds: Set<string>;
5468
5469
  activeApplicant: string | null;
5469
5470
  setActiveApplicant: (application_id: string | null) => void;
5470
5471
  loading: boolean;
@@ -5499,16 +5500,16 @@ declare function getSignedUrlFromAsset(docId: string): Promise<string | null>;
5499
5500
  declare function getDisplayableQuestions(questions: TEDCApplicant["questions"], questionAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
5500
5501
  declare function getDisplayableDocuments(questions: TEDCApplicant["questions"], documentAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
5501
5502
  declare function getValidationErrors(validations?: TAnswer["validations"] | null): ValidationResult;
5502
- declare function getValidationResult(question: TEDCApplicant["questions"][0], applicants?: Record<string, TEDCApplicant>): ValidationResult;
5503
- declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): Array<{
5503
+ declare function getValidationResult(question: TEDCApplicant["questions"][0], applicantIds: Set<string>): ValidationResult;
5504
+ declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): Array<{
5504
5505
  name: string;
5505
5506
  validationResult: ValidationResult;
5506
5507
  }>;
5507
- declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): Array<{
5508
+ declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): Array<{
5508
5509
  name: string;
5509
5510
  validationResult: ValidationResult;
5510
5511
  }>;
5511
- declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[], applicants?: Record<string, TEDCApplicant>): {
5512
+ declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[], applicantIds: Set<string>): {
5512
5513
  isComplete: boolean;
5513
5514
  questionValidations: Array<{
5514
5515
  name: string;
@@ -5567,6 +5568,7 @@ declare const EDCFlow: {
5567
5568
  order: TVisaOrder | null;
5568
5569
  questionnaire: TQuestionnaire | null;
5569
5570
  applicants: Record<string, TEDCApplicant>;
5571
+ applicantIds: Set<string>;
5570
5572
  activeApplicant: string | null;
5571
5573
  setActiveApplicant: (application_id: string | null) => void;
5572
5574
  loading: boolean;
package/dist/index.js CHANGED
@@ -558,10 +558,10 @@ var extractDefaultAnswer = (value) => {
558
558
  const match = value.match(/^\{\{.*\}\}$/);
559
559
  return match ? match[0] : null;
560
560
  };
561
- var isDynamicApplicantAnswerEmpty = (answer, applicants) => {
561
+ var isDynamicApplicantAnswerEmpty = (answer, applicantIds) => {
562
562
  const match = answer.match(/^app_id_(.+)$/);
563
563
  if (!match) return false;
564
- return !(match[1] in applicants);
564
+ return !applicantIds.has(match[1]);
565
565
  };
566
566
  function getDisplayableQuestions(questions, questionAnswerSources) {
567
567
  return questions.filter((q) => {
@@ -626,7 +626,7 @@ function getValidationErrors(validations) {
626
626
  totalTimeSaved
627
627
  };
628
628
  }
629
- function getValidationResult(question, applicants = {}) {
629
+ function getValidationResult(question, applicantIds) {
630
630
  const backendResult = getValidationErrors(question.answer_data?.validations);
631
631
  if (backendResult && backendResult.status !== "PERFECT" /* PERFECT */) {
632
632
  return backendResult;
@@ -635,7 +635,7 @@ function getValidationResult(question, applicants = {}) {
635
635
  const isDocument = question.question.type === "DOCUMENT" /* DOCUMENT */;
636
636
  const hasApproved = question.answer_data?.assets_id?.find((asset) => asset.status === "APPROVED");
637
637
  const answer = question.answer_data?.answer?.[0];
638
- const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null || isDynamicApplicantAnswerEmpty(answer, applicants);
638
+ const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null || isDynamicApplicantAnswerEmpty(answer, applicantIds);
639
639
  if (isDocument && !hasApproved || !isDocument && isAnswerEmpty) {
640
640
  const answerRequiredItem = {
641
641
  error_text: isDocument ? "Please upload the required document" : "Answer cannot be empty",
@@ -660,11 +660,11 @@ function getValidationResult(question, applicants = {}) {
660
660
  totalTimeSaved: 0
661
661
  };
662
662
  }
663
- function validateApplicantQuestions(applicant, questionAnswerSources, applicants = {}) {
663
+ function validateApplicantQuestions(applicant, questionAnswerSources, applicantIds) {
664
664
  const displayableQuestions = getDisplayableQuestions(applicant.questions, questionAnswerSources);
665
665
  const questionValidations = [];
666
666
  displayableQuestions.forEach((question) => {
667
- const validationResult = getValidationResult(question, applicants);
667
+ const validationResult = getValidationResult(question, applicantIds);
668
668
  if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
669
669
  questionValidations.push({
670
670
  name: question.question.question,
@@ -674,11 +674,11 @@ function validateApplicantQuestions(applicant, questionAnswerSources, applicants
674
674
  });
675
675
  return questionValidations;
676
676
  }
677
- function validateApplicantDocuments(applicant, documentAnswerSources, applicants = {}) {
677
+ function validateApplicantDocuments(applicant, documentAnswerSources, applicantIds) {
678
678
  const displayableDocuments = getDisplayableDocuments(applicant.questions, documentAnswerSources);
679
679
  const documentValidations = [];
680
680
  displayableDocuments.forEach((document) => {
681
- const validationResult = getValidationResult(document, applicants);
681
+ const validationResult = getValidationResult(document, applicantIds);
682
682
  if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
683
683
  documentValidations.push({
684
684
  name: document.question.question,
@@ -688,9 +688,9 @@ function validateApplicantDocuments(applicant, documentAnswerSources, applicants
688
688
  });
689
689
  return documentValidations;
690
690
  }
691
- function validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicants = {}) {
692
- const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources, applicants);
693
- const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources, applicants);
691
+ function validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantIds) {
692
+ const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources, applicantIds);
693
+ const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources, applicantIds);
694
694
  const applicantValidations = getValidationErrors(applicant.application?.validations);
695
695
  const hasBlockingIssues = questionValidations.some((q) => q.validationResult?.status === "MISSING" /* MISSING */ || q.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || documentValidations.some((d) => d.validationResult?.status === "MISSING" /* MISSING */ || d.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || applicantValidations?.status === "UNFIXABLE" /* UNFIXABLE */;
696
696
  return {
@@ -702,10 +702,12 @@ function validateApplicant(applicant, questionAnswerSources, documentAnswerSourc
702
702
  }
703
703
  function validateAllApplicants(applicants, questionAnswerSources, documentAnswerSources) {
704
704
  const applicantsArray = Array.isArray(applicants) ? applicants : Object.values(applicants);
705
- const applicantsRecord = Array.isArray(applicants) ? Object.fromEntries(applicants.map((a) => [a.application_id, a])) : applicants;
705
+ const applicantIds = new Set(
706
+ Array.isArray(applicants) ? applicants.map((a) => a.application_id) : Object.keys(applicants)
707
+ );
706
708
  const applicantValidations = [];
707
709
  applicantsArray.forEach((applicant) => {
708
- const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantsRecord);
710
+ const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantIds);
709
711
  if (!validation.isComplete) {
710
712
  const applicantName = getFullName(
711
713
  applicant.traveller.first_name,
@@ -892,6 +894,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
892
894
  const [questionnaire, setQuestionnaire] = react.useState(null);
893
895
  const [dynamicQuestionMap, setDynamicQuestionMap] = react.useState({});
894
896
  const [applicants, setApplicants] = react.useState({});
897
+ const [applicantIds, setApplicantIds] = react.useState(/* @__PURE__ */ new Set());
895
898
  const [activeApplicant, setActiveApplicant] = react.useState(null);
896
899
  const [loading, setLoading] = react.useState(true);
897
900
  const [error, setError] = react.useState(null);
@@ -964,6 +967,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
964
967
  setQuestionnaire(updatedQuestionnaire);
965
968
  return applicantsWithSideEffects;
966
969
  });
970
+ setApplicantIds((prev) => /* @__PURE__ */ new Set([...prev, applicant.application_id]));
967
971
  setActiveApplicant(applicant.application_id);
968
972
  setSuccess("Traveller added and Applicant created");
969
973
  return applicant;
@@ -1079,6 +1083,11 @@ var EDCFlowProvider = ({ children, orderId }) => {
1079
1083
  });
1080
1084
  return applicantsWithSideEffects;
1081
1085
  });
1086
+ setApplicantIds((prev) => {
1087
+ const next = new Set(prev);
1088
+ next.delete(application_id);
1089
+ return next;
1090
+ });
1082
1091
  setSuccess("Applicant deleted successfully");
1083
1092
  } catch (err) {
1084
1093
  console.error("Failed to delete applicant:", err);
@@ -1144,12 +1153,12 @@ var EDCFlowProvider = ({ children, orderId }) => {
1144
1153
  const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaire, dynamicQuestionMap);
1145
1154
  setQuestionnaire(updatedQuestionnaire);
1146
1155
  setApplicants(updatedApplicants);
1147
- const applicantIds = Object.keys(updatedApplicants);
1148
- if (applicantIds.length > 0) {
1149
- if (activeApplicant && applicantIds.includes(activeApplicant)) {
1156
+ const applicantIds2 = Object.keys(updatedApplicants);
1157
+ if (applicantIds2.length > 0) {
1158
+ if (activeApplicant && applicantIds2.includes(activeApplicant)) {
1150
1159
  setActiveApplicant(activeApplicant);
1151
1160
  } else {
1152
- setActiveApplicant(applicantIds[0]);
1161
+ setActiveApplicant(applicantIds2[0]);
1153
1162
  }
1154
1163
  }
1155
1164
  }
@@ -1209,9 +1218,10 @@ var EDCFlowProvider = ({ children, orderId }) => {
1209
1218
  const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaireData, dynamicMap);
1210
1219
  setQuestionnaire(updatedQuestionnaire);
1211
1220
  setApplicants(updatedApplicants);
1212
- const applicantIds = Object.keys(updatedApplicants);
1213
- if (applicantIds.length > 0) {
1214
- setActiveApplicant(applicantIds[0]);
1221
+ setApplicantIds(new Set(Object.keys(updatedApplicants)));
1222
+ const ids = Object.keys(updatedApplicants);
1223
+ if (ids.length > 0) {
1224
+ setActiveApplicant(ids[0]);
1215
1225
  }
1216
1226
  }
1217
1227
  } catch (err) {
@@ -1228,6 +1238,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
1228
1238
  order,
1229
1239
  questionnaire,
1230
1240
  applicants,
1241
+ applicantIds,
1231
1242
  activeApplicant,
1232
1243
  setActiveApplicant,
1233
1244
  loading,
package/dist/index.mjs CHANGED
@@ -532,10 +532,10 @@ var extractDefaultAnswer = (value) => {
532
532
  const match = value.match(/^\{\{.*\}\}$/);
533
533
  return match ? match[0] : null;
534
534
  };
535
- var isDynamicApplicantAnswerEmpty = (answer, applicants) => {
535
+ var isDynamicApplicantAnswerEmpty = (answer, applicantIds) => {
536
536
  const match = answer.match(/^app_id_(.+)$/);
537
537
  if (!match) return false;
538
- return !(match[1] in applicants);
538
+ return !applicantIds.has(match[1]);
539
539
  };
540
540
  function getDisplayableQuestions(questions, questionAnswerSources) {
541
541
  return questions.filter((q) => {
@@ -600,7 +600,7 @@ function getValidationErrors(validations) {
600
600
  totalTimeSaved
601
601
  };
602
602
  }
603
- function getValidationResult(question, applicants = {}) {
603
+ function getValidationResult(question, applicantIds) {
604
604
  const backendResult = getValidationErrors(question.answer_data?.validations);
605
605
  if (backendResult && backendResult.status !== "PERFECT" /* PERFECT */) {
606
606
  return backendResult;
@@ -609,7 +609,7 @@ function getValidationResult(question, applicants = {}) {
609
609
  const isDocument = question.question.type === "DOCUMENT" /* DOCUMENT */;
610
610
  const hasApproved = question.answer_data?.assets_id?.find((asset) => asset.status === "APPROVED");
611
611
  const answer = question.answer_data?.answer?.[0];
612
- const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null || isDynamicApplicantAnswerEmpty(answer, applicants);
612
+ const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null || isDynamicApplicantAnswerEmpty(answer, applicantIds);
613
613
  if (isDocument && !hasApproved || !isDocument && isAnswerEmpty) {
614
614
  const answerRequiredItem = {
615
615
  error_text: isDocument ? "Please upload the required document" : "Answer cannot be empty",
@@ -634,11 +634,11 @@ function getValidationResult(question, applicants = {}) {
634
634
  totalTimeSaved: 0
635
635
  };
636
636
  }
637
- function validateApplicantQuestions(applicant, questionAnswerSources, applicants = {}) {
637
+ function validateApplicantQuestions(applicant, questionAnswerSources, applicantIds) {
638
638
  const displayableQuestions = getDisplayableQuestions(applicant.questions, questionAnswerSources);
639
639
  const questionValidations = [];
640
640
  displayableQuestions.forEach((question) => {
641
- const validationResult = getValidationResult(question, applicants);
641
+ const validationResult = getValidationResult(question, applicantIds);
642
642
  if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
643
643
  questionValidations.push({
644
644
  name: question.question.question,
@@ -648,11 +648,11 @@ function validateApplicantQuestions(applicant, questionAnswerSources, applicants
648
648
  });
649
649
  return questionValidations;
650
650
  }
651
- function validateApplicantDocuments(applicant, documentAnswerSources, applicants = {}) {
651
+ function validateApplicantDocuments(applicant, documentAnswerSources, applicantIds) {
652
652
  const displayableDocuments = getDisplayableDocuments(applicant.questions, documentAnswerSources);
653
653
  const documentValidations = [];
654
654
  displayableDocuments.forEach((document) => {
655
- const validationResult = getValidationResult(document, applicants);
655
+ const validationResult = getValidationResult(document, applicantIds);
656
656
  if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
657
657
  documentValidations.push({
658
658
  name: document.question.question,
@@ -662,9 +662,9 @@ function validateApplicantDocuments(applicant, documentAnswerSources, applicants
662
662
  });
663
663
  return documentValidations;
664
664
  }
665
- function validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicants = {}) {
666
- const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources, applicants);
667
- const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources, applicants);
665
+ function validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantIds) {
666
+ const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources, applicantIds);
667
+ const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources, applicantIds);
668
668
  const applicantValidations = getValidationErrors(applicant.application?.validations);
669
669
  const hasBlockingIssues = questionValidations.some((q) => q.validationResult?.status === "MISSING" /* MISSING */ || q.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || documentValidations.some((d) => d.validationResult?.status === "MISSING" /* MISSING */ || d.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || applicantValidations?.status === "UNFIXABLE" /* UNFIXABLE */;
670
670
  return {
@@ -676,10 +676,12 @@ function validateApplicant(applicant, questionAnswerSources, documentAnswerSourc
676
676
  }
677
677
  function validateAllApplicants(applicants, questionAnswerSources, documentAnswerSources) {
678
678
  const applicantsArray = Array.isArray(applicants) ? applicants : Object.values(applicants);
679
- const applicantsRecord = Array.isArray(applicants) ? Object.fromEntries(applicants.map((a) => [a.application_id, a])) : applicants;
679
+ const applicantIds = new Set(
680
+ Array.isArray(applicants) ? applicants.map((a) => a.application_id) : Object.keys(applicants)
681
+ );
680
682
  const applicantValidations = [];
681
683
  applicantsArray.forEach((applicant) => {
682
- const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantsRecord);
684
+ const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources, applicantIds);
683
685
  if (!validation.isComplete) {
684
686
  const applicantName = getFullName(
685
687
  applicant.traveller.first_name,
@@ -866,6 +868,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
866
868
  const [questionnaire, setQuestionnaire] = useState(null);
867
869
  const [dynamicQuestionMap, setDynamicQuestionMap] = useState({});
868
870
  const [applicants, setApplicants] = useState({});
871
+ const [applicantIds, setApplicantIds] = useState(/* @__PURE__ */ new Set());
869
872
  const [activeApplicant, setActiveApplicant] = useState(null);
870
873
  const [loading, setLoading] = useState(true);
871
874
  const [error, setError] = useState(null);
@@ -938,6 +941,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
938
941
  setQuestionnaire(updatedQuestionnaire);
939
942
  return applicantsWithSideEffects;
940
943
  });
944
+ setApplicantIds((prev) => /* @__PURE__ */ new Set([...prev, applicant.application_id]));
941
945
  setActiveApplicant(applicant.application_id);
942
946
  setSuccess("Traveller added and Applicant created");
943
947
  return applicant;
@@ -1053,6 +1057,11 @@ var EDCFlowProvider = ({ children, orderId }) => {
1053
1057
  });
1054
1058
  return applicantsWithSideEffects;
1055
1059
  });
1060
+ setApplicantIds((prev) => {
1061
+ const next = new Set(prev);
1062
+ next.delete(application_id);
1063
+ return next;
1064
+ });
1056
1065
  setSuccess("Applicant deleted successfully");
1057
1066
  } catch (err) {
1058
1067
  console.error("Failed to delete applicant:", err);
@@ -1118,12 +1127,12 @@ var EDCFlowProvider = ({ children, orderId }) => {
1118
1127
  const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaire, dynamicQuestionMap);
1119
1128
  setQuestionnaire(updatedQuestionnaire);
1120
1129
  setApplicants(updatedApplicants);
1121
- const applicantIds = Object.keys(updatedApplicants);
1122
- if (applicantIds.length > 0) {
1123
- if (activeApplicant && applicantIds.includes(activeApplicant)) {
1130
+ const applicantIds2 = Object.keys(updatedApplicants);
1131
+ if (applicantIds2.length > 0) {
1132
+ if (activeApplicant && applicantIds2.includes(activeApplicant)) {
1124
1133
  setActiveApplicant(activeApplicant);
1125
1134
  } else {
1126
- setActiveApplicant(applicantIds[0]);
1135
+ setActiveApplicant(applicantIds2[0]);
1127
1136
  }
1128
1137
  }
1129
1138
  }
@@ -1183,9 +1192,10 @@ var EDCFlowProvider = ({ children, orderId }) => {
1183
1192
  const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaireData, dynamicMap);
1184
1193
  setQuestionnaire(updatedQuestionnaire);
1185
1194
  setApplicants(updatedApplicants);
1186
- const applicantIds = Object.keys(updatedApplicants);
1187
- if (applicantIds.length > 0) {
1188
- setActiveApplicant(applicantIds[0]);
1195
+ setApplicantIds(new Set(Object.keys(updatedApplicants)));
1196
+ const ids = Object.keys(updatedApplicants);
1197
+ if (ids.length > 0) {
1198
+ setActiveApplicant(ids[0]);
1189
1199
  }
1190
1200
  }
1191
1201
  } catch (err) {
@@ -1202,6 +1212,7 @@ var EDCFlowProvider = ({ children, orderId }) => {
1202
1212
  order,
1203
1213
  questionnaire,
1204
1214
  applicants,
1215
+ applicantIds,
1205
1216
  activeApplicant,
1206
1217
  setActiveApplicant,
1207
1218
  loading,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smvtech/x-flux",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "description": "x-flux - A powerful React package for managing effective document collection flows, visa questionnaires, travellers, and applications",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",