@tap-payments/auth-jsconnect 2.8.61-beta → 2.8.61-development

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.
Files changed (46) hide show
  1. package/build/@types/redux.d.ts +1 -0
  2. package/build/api/entity.d.ts +2 -2
  3. package/build/api/entity.js +12 -4
  4. package/build/api/index.d.ts +2 -2
  5. package/build/components/Tooltip/Tooltip.js +1 -1
  6. package/build/constants/api.d.ts +0 -1
  7. package/build/constants/api.js +0 -2
  8. package/build/constants/app.d.ts +0 -2
  9. package/build/constants/app.js +0 -2
  10. package/build/features/app/bank/bankStore.d.ts +13 -19
  11. package/build/features/app/bank/bankStore.js +183 -165
  12. package/build/features/app/board/boardStore.js +16 -10
  13. package/build/features/app/brand/brandStore.d.ts +16 -31
  14. package/build/features/app/brand/brandStore.js +243 -239
  15. package/build/features/app/business/businessStore.js +7 -1
  16. package/build/features/app/entity/entityStore.d.ts +20 -34
  17. package/build/features/app/entity/entityStore.js +204 -249
  18. package/build/features/app/individual/individualStore.d.ts +17 -36
  19. package/build/features/app/individual/individualStore.js +221 -270
  20. package/build/features/app/password/passwordStore.d.ts +19 -25
  21. package/build/features/app/password/passwordStore.js +170 -216
  22. package/build/features/app/tax/taxStore.d.ts +13 -7
  23. package/build/features/app/tax/taxStore.js +168 -147
  24. package/build/features/bank/screens/BankDetails/BankDetails.js +17 -4
  25. package/build/features/brand/screens/BrandActivities/BrandActivities.js +48 -11
  26. package/build/features/brand/screens/BrandInfo/BrandInfo.js +22 -4
  27. package/build/features/brand/screens/BrandSegmentInfo/BrandSegmentInfo.js +22 -6
  28. package/build/features/business/screens/Activities/Activities.js +9 -1
  29. package/build/features/business/screens/Customers/Customers.js +9 -1
  30. package/build/features/connect/screens/BusinessCountry/BusinessCountry.js +7 -1
  31. package/build/features/entity/screens/EntityCapital/EntityCapital.js +33 -9
  32. package/build/features/entity/screens/EntityName/EntityName.js +31 -14
  33. package/build/features/individual/screens/AdditionalIndividualInfo/AdditionalIndividualInfo.js +43 -10
  34. package/build/features/individual/screens/IndividualList/IndividualList.js +7 -0
  35. package/build/features/individual/screens/IndividualList/UserList.js +3 -3
  36. package/build/features/individual/screens/IndividualPersonalInfo/IndividualPersonalInfo.js +73 -18
  37. package/build/features/password/Password.js +1 -1
  38. package/build/features/shared/Button/FlowsButtons.js +7 -1
  39. package/build/features/signIn/SignIn.js +10 -2
  40. package/build/features/tax/screens/TaxDetails/TaxDetails.js +7 -2
  41. package/build/hooks/index.d.ts +1 -0
  42. package/build/hooks/index.js +1 -0
  43. package/build/hooks/useFormDirtyCheck.d.ts +10 -0
  44. package/build/hooks/useFormDirtyCheck.js +66 -0
  45. package/build/utils/common.js +4 -4
  46. package/package.json +2 -2
@@ -55,10 +55,10 @@ import { getRecentDocumentBasedOnPurpose, hasNoneEditableValue, retrieveIndividu
55
55
  export var verifyLeadToken = createAsyncThunk('taxVerifyLeadToken', function (_a, thunkApi) {
56
56
  var token = _a.token, isInternally = _a.isInternally;
57
57
  return __awaiter(void 0, void 0, void 0, function () {
58
- var payload, data, boardData, boardInfoData, individualData, publicKey, countryIso2, _b, id_1, type_1, serviceCallBack, _c, boardRes, individualRes;
59
- var _d, _e, _f, _g, _h;
60
- return __generator(this, function (_j) {
61
- switch (_j.label) {
58
+ var payload, data, entityData, _b, config, country_code, entity_id, boardId, publicKey, data_1;
59
+ var _c, _d, _e;
60
+ return __generator(this, function (_f) {
61
+ switch (_f.label) {
62
62
  case 0:
63
63
  payload = __assign({ service_name: 'tap_email', verify_token: token }, (isInternally && {
64
64
  notification: {
@@ -67,56 +67,48 @@ export var verifyLeadToken = createAsyncThunk('taxVerifyLeadToken', function (_a
67
67
  }));
68
68
  return [4, API.leadService.verifyLeadToken(payload)];
69
69
  case 1:
70
- data = (_j.sent()).data;
71
- individualData = undefined;
72
- if (((_d = data === null || data === void 0 ? void 0 : data.errors) === null || _d === void 0 ? void 0 : _d.length) || (data === null || data === void 0 ? void 0 : data.mw_error))
70
+ data = (_f.sent()).data;
71
+ entityData = undefined;
72
+ if (((_c = data === null || data === void 0 ? void 0 : data.errors) === null || _c === void 0 ? void 0 : _c.length) || (data === null || data === void 0 ? void 0 : data.mw_error))
73
73
  throw new Error(data.errors[0].description || (data === null || data === void 0 ? void 0 : data.mw_error));
74
74
  if (isInternally)
75
75
  data.step_name = TAX_STEP_NAMES.TAX_INFO;
76
- publicKey = (_e = data === null || data === void 0 ? void 0 : data.config) === null || _e === void 0 ? void 0 : _e.public_key;
77
- countryIso2 = data === null || data === void 0 ? void 0 : data.country_code;
78
- if (publicKey) {
76
+ _b = data || {}, config = _b.config, country_code = _b.country_code, entity_id = _b.entity_id, boardId = _b.id;
77
+ publicKey = config === null || config === void 0 ? void 0 : config.public_key;
78
+ if (publicKey)
79
79
  thunkApi.dispatch(handlePublicKey(publicKey));
80
- }
81
- if (countryIso2)
82
- thunkApi.dispatch(handleSetCountryByIso2(countryIso2));
83
- if (!(data === null || data === void 0 ? void 0 : data.id)) return [3, 6];
84
- if (!data.board_info_id) return [3, 3];
85
- return [4, API.boardService.retrieveBoardInfo({ id: data.id, infoId: data.board_info_id })];
80
+ if (country_code)
81
+ thunkApi.dispatch(handleSetCountryByIso2(country_code));
82
+ if (!(data.step_name === TAX_STEP_NAMES.PHONE_AUTH)) return [3, 2];
83
+ thunkApi.dispatch(handleCurrentActiveScreen('TAX_VERIFY_STEP'));
84
+ return [3, 7];
86
85
  case 2:
87
- boardInfoData = _j.sent();
88
- _j.label = 3;
89
- case 3: return [4, API.boardService.retrieveBoardDetails(data.id)];
90
- case 4:
91
- boardData = _j.sent();
92
- _b = ((_f = boardInfoData === null || boardInfoData === void 0 ? void 0 : boardInfoData.notification) === null || _f === void 0 ? void 0 : _f.recipient) || {}, id_1 = _b.id, type_1 = _b.type;
93
- serviceCallBack = function () { return API.individualService.retrieveIndividual(id_1, type_1); };
94
- return [4, retrieveIndividualData(type_1, boardData, serviceCallBack)];
86
+ if (!(data.step_name === TAX_STEP_NAMES.TAX_INFO)) return [3, 7];
87
+ if (!!entity_id) return [3, 4];
88
+ return [4, API.boardService.retrieveBoardDetails(boardId)];
89
+ case 3:
90
+ data_1 = _f.sent();
91
+ if (!((_d = data_1 === null || data_1 === void 0 ? void 0 : data_1.entity) === null || _d === void 0 ? void 0 : _d.id))
92
+ throw new Error('entity_id_missing');
93
+ entityData = data_1;
94
+ return [3, 6];
95
+ case 4: return [4, API.entityService.retrieveEntity(entity_id)];
95
96
  case 5:
96
- _c = _j.sent(), boardRes = _c.boardRes, individualRes = _c.individualRes;
97
- boardData = boardRes;
98
- individualData = individualRes;
99
- _j.label = 6;
97
+ entityData = _f.sent();
98
+ _f.label = 6;
100
99
  case 6:
101
- if (!countryIso2 && ((_g = boardData === null || boardData === void 0 ? void 0 : boardData.entity) === null || _g === void 0 ? void 0 : _g.country)) {
102
- countryIso2 = boardData.entity.country;
103
- thunkApi.dispatch(handleSetCountryByIso2(countryIso2));
104
- }
105
- if (data.step_name === TAX_STEP_NAMES.PHONE_AUTH) {
106
- thunkApi.dispatch(handleCurrentActiveScreen('TAX_VERIFY_STEP'));
107
- }
108
- else if (data.step_name === TAX_STEP_NAMES.TAX_INFO) {
109
- if (isInternally)
110
- sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('TAX_TAX_DETAILS_STEP')); });
111
- else
112
- thunkApi.dispatch(handleNextScreenStep('TAX_TAX_DETAILS_STEP'));
113
- }
114
- return [2, {
115
- data: data,
116
- individualData: individualData,
117
- boardResponse: __assign(__assign({}, boardData === null || boardData === void 0 ? void 0 : boardData.business), { entity: boardData === null || boardData === void 0 ? void 0 : boardData.entity, brand: boardData === null || boardData === void 0 ? void 0 : boardData.brand, user: boardData === null || boardData === void 0 ? void 0 : boardData.user, bank_account: boardData === null || boardData === void 0 ? void 0 : boardData.bank_account, vatID: (_h = boardData === null || boardData === void 0 ? void 0 : boardData.entity) === null || _h === void 0 ? void 0 : _h.vat_id, merchant: boardData === null || boardData === void 0 ? void 0 : boardData.merchant, individuals: boardData === null || boardData === void 0 ? void 0 : boardData.individuals, business: boardData === null || boardData === void 0 ? void 0 : boardData.business, notification: boardInfoData === null || boardInfoData === void 0 ? void 0 : boardInfoData.notification, board_status: boardData === null || boardData === void 0 ? void 0 : boardData.status }),
118
- token: token
119
- }];
100
+ if (!country_code && ((_e = entityData === null || entityData === void 0 ? void 0 : entityData.entity) === null || _e === void 0 ? void 0 : _e.country))
101
+ thunkApi.dispatch(handleSetCountryByIso2(entityData.entity.country));
102
+ if (isInternally)
103
+ sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('TAX_TAX_DETAILS_STEP')); });
104
+ else
105
+ thunkApi.dispatch(handleNextScreenStep('TAX_TAX_DETAILS_STEP'));
106
+ _f.label = 7;
107
+ case 7: return [2, {
108
+ data: data,
109
+ entityData: entityData === null || entityData === void 0 ? void 0 : entityData.entity,
110
+ token: token
111
+ }];
120
112
  }
121
113
  });
122
114
  });
@@ -139,98 +131,139 @@ export var resendOTP = createAsyncThunk('resendOTPTax', function (params, thunkA
139
131
  });
140
132
  }); });
141
133
  export var retrieveBoardStatus = createAsyncThunk('tax/retrieveBoardStatus', function (parmas, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
142
- var tax, board_id, data;
143
- return __generator(this, function (_a) {
144
- switch (_a.label) {
134
+ var tax, _a, board_id, board_info_id, recipient, _b, id, type, data;
135
+ return __generator(this, function (_c) {
136
+ switch (_c.label) {
145
137
  case 0:
146
138
  tax = thunkApi.getState().tax;
147
- board_id = (tax.data.verify.responseBody || {}).board_id;
148
- return [4, API.boardService.retrieveBoardInfoStatus(board_id)];
139
+ _a = tax.data.verify.responseBody || {}, board_id = _a.board_id, board_info_id = _a.board_info_id, recipient = _a.recipient;
140
+ if (!board_id || !board_info_id)
141
+ throw new Error('Internal server error');
142
+ _b = recipient || {}, id = _b.id, type = _b.type;
143
+ return [4, Promise.all([
144
+ API.boardService.retrieveBoardInfoStatus(board_id),
145
+ thunkApi.dispatch(retrieveBoardDetails({ boardId: board_id, individualId: id, individualType: type })).unwrap()
146
+ ])];
149
147
  case 1:
150
- data = _a.sent();
148
+ data = (_c.sent())[0];
151
149
  thunkApi.dispatch(handlePrevScreenStep());
152
150
  return [2, { flows: (data === null || data === void 0 ? void 0 : data.info) || [] }];
153
151
  }
154
152
  });
155
153
  }); });
156
- export var retrieveEntityInfo = createAsyncThunk('retrieveTaxEntityInfo', function (entityID) { return __awaiter(void 0, void 0, void 0, function () {
157
- var data;
158
- return __generator(this, function (_a) {
159
- switch (_a.label) {
160
- case 0: return [4, API.entityService.retrieveEntityInfo(entityID)];
161
- case 1:
162
- data = (_a.sent()).data;
163
- return [2, { data: data }];
164
- }
154
+ export var retrieveBoardDetails = createAsyncThunk('tax/retrieveBrandInfo', function (_a) {
155
+ var boardId = _a.boardId, id = _a.individualId, type = _a.individualType;
156
+ return __awaiter(void 0, void 0, void 0, function () {
157
+ var data, individualData, boardData, serviceCallBack, _b, boardRes, individualRes;
158
+ var _c, _d, _e, _f;
159
+ return __generator(this, function (_g) {
160
+ switch (_g.label) {
161
+ case 0: return [4, API.boardService.retrieveBoardDetails(boardId)];
162
+ case 1:
163
+ data = _g.sent();
164
+ individualData = data === null || data === void 0 ? void 0 : data.user;
165
+ boardData = data;
166
+ if (!(((_c = data === null || data === void 0 ? void 0 : data.user) === null || _c === void 0 ? void 0 : _c.id) !== id)) return [3, 3];
167
+ serviceCallBack = function () { return API.individualService.retrieveIndividual(id, type); };
168
+ return [4, retrieveIndividualData(type, data, serviceCallBack)];
169
+ case 2:
170
+ _b = _g.sent(), boardRes = _b.boardRes, individualRes = _b.individualRes;
171
+ individualData = individualRes;
172
+ boardData = boardRes;
173
+ _g.label = 3;
174
+ case 3: return [2, __assign(__assign({}, boardData), { brand: boardData === null || boardData === void 0 ? void 0 : boardData.brand, bank_account: boardData === null || boardData === void 0 ? void 0 : boardData.bank_account, entity: boardData === null || boardData === void 0 ? void 0 : boardData.entity, merchant: boardData === null || boardData === void 0 ? void 0 : boardData.merchant, name: (_d = boardData === null || boardData === void 0 ? void 0 : boardData.user) === null || _d === void 0 ? void 0 : _d.names, vatID: (_e = boardData === null || boardData === void 0 ? void 0 : boardData.entity) === null || _e === void 0 ? void 0 : _e.vat_id, individuals: boardData === null || boardData === void 0 ? void 0 : boardData.individuals, contact: (_f = boardData === null || boardData === void 0 ? void 0 : boardData.user) === null || _f === void 0 ? void 0 : _f.contact, user: individualData, board_status: boardData === null || boardData === void 0 ? void 0 : boardData.status })];
175
+ }
176
+ });
165
177
  });
166
- }); });
178
+ });
167
179
  export var verifyTaxLeadOTP = createAsyncThunk('verifyTaxLeadOTP', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
168
- var _a, tax, settings, responseBody, payload, data, publicKey;
169
- var _b, _c, _d, _e, _f;
170
- return __generator(this, function (_g) {
171
- switch (_g.label) {
180
+ var _a, tax, settings, responseBody, payload, data, _b, config, entity_id, boardId, country_code, entityData, publicKey, countryIso2, data_2;
181
+ var _c, _d, _e, _f, _g, _h;
182
+ return __generator(this, function (_j) {
183
+ switch (_j.label) {
172
184
  case 0:
173
185
  _a = thunkApi.getState(), tax = _a.tax, settings = _a.settings;
174
186
  responseBody = tax.data.verify.responseBody;
175
187
  payload = {
176
188
  data: params.otp,
177
- service_name: (_b = responseBody === null || responseBody === void 0 ? void 0 : responseBody.verification_by) === null || _b === void 0 ? void 0 : _b.service_name,
189
+ service_name: (_c = responseBody === null || responseBody === void 0 ? void 0 : responseBody.verification_by) === null || _c === void 0 ? void 0 : _c.service_name,
178
190
  verify_token: responseBody === null || responseBody === void 0 ? void 0 : responseBody.verify_token,
179
191
  step_name: TAX_STEP_NAMES.PHONE_AUTH,
180
192
  encryption_contract: ['data']
181
193
  };
182
194
  return [4, API.leadService.verifyLeadOTP(payload)];
183
195
  case 1:
184
- data = (_g.sent()).data;
185
- if ((_c = data.errors) === null || _c === void 0 ? void 0 : _c.length)
196
+ data = (_j.sent()).data;
197
+ if ((_d = data.errors) === null || _d === void 0 ? void 0 : _d.length)
186
198
  throw new Error(data.errors[0].description);
187
- publicKey = (_d = data === null || data === void 0 ? void 0 : data.config) === null || _d === void 0 ? void 0 : _d.public_key;
188
- if (publicKey) {
199
+ _b = data || {}, config = _b.config, entity_id = _b.entity_id, boardId = _b.id, country_code = _b.country_code;
200
+ entityData = undefined;
201
+ publicKey = config === null || config === void 0 ? void 0 : config.public_key;
202
+ countryIso2 = country_code || (responseBody === null || responseBody === void 0 ? void 0 : responseBody.country_code);
203
+ if (publicKey)
189
204
  thunkApi.dispatch(handlePublicKey(publicKey));
190
- }
191
- (_f = (_e = settings.data.appConfig).onStepCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, settings.data.activeScreen.name, { otp: params.otp });
205
+ if (countryIso2)
206
+ thunkApi.dispatch(handleSetCountryByIso2(countryIso2));
207
+ if (!!entity_id) return [3, 3];
208
+ return [4, API.boardService.retrieveBoardDetails(boardId)];
209
+ case 2:
210
+ data_2 = _j.sent();
211
+ if (!((_e = data_2 === null || data_2 === void 0 ? void 0 : data_2.entity) === null || _e === void 0 ? void 0 : _e.id))
212
+ throw new Error('entity_id_missing');
213
+ entityData = data_2;
214
+ return [3, 5];
215
+ case 3: return [4, API.entityService.retrieveEntity(entity_id)];
216
+ case 4:
217
+ entityData = _j.sent();
218
+ _j.label = 5;
219
+ case 5:
220
+ if (!countryIso2 && ((_f = entityData === null || entityData === void 0 ? void 0 : entityData.entity) === null || _f === void 0 ? void 0 : _f.country))
221
+ thunkApi.dispatch(handleSetCountryByIso2(entityData.entity.country));
222
+ (_h = (_g = settings.data.appConfig).onStepCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, settings.data.activeScreen.name, { otp: params.otp });
192
223
  sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('TAX_TAX_DETAILS_STEP')); });
193
- return [2, { data: data, formData: params }];
224
+ return [2, { data: data, entityData: entityData === null || entityData === void 0 ? void 0 : entityData.entity, formData: params }];
194
225
  }
195
226
  });
196
227
  }); });
197
228
  export var updateTaxInfo = createAsyncThunk('updateTaxInfo', function (_a, thunkApi) {
198
- var formData = _a.formData, originalFormData = _a.originalFormData;
229
+ var formData = _a.formData, originalFormData = _a.originalFormData, isDirty = _a.isDirty;
199
230
  return __awaiter(void 0, void 0, void 0, function () {
200
- var _b, settings, tax, _c, entity, notification, _d, id, data_status, documents, isTaxNumberNonEditable, isConfirmPolicyNonEditable, isDocumentsNonEditable, document, vatId, confirmPolicy, documentId, requestBody, data, documentBody, _e, documentBody, _f;
201
- var _g, _h, _j, _k;
202
- return __generator(this, function (_l) {
203
- switch (_l.label) {
231
+ var _b, settings, tax, _c, entity, recipient, _d, id, data_status, documents, isTaxNumberNonEditable, isConfirmPolicyNonEditable, isDocumentsNonEditable, document, vatId, confirmPolicy, documentId, data, requestBody, documentBody, documentData, documentBody, documentData;
232
+ var _e, _f;
233
+ return __generator(this, function (_g) {
234
+ switch (_g.label) {
204
235
  case 0:
205
236
  _b = thunkApi.getState(), settings = _b.settings, tax = _b.tax;
206
- _c = tax.data.verify.responseBody || {}, entity = _c.entity, notification = _c.notification;
237
+ _c = tax.data.verify.responseBody || {}, entity = _c.entity, recipient = _c.recipient;
207
238
  _d = entity || {}, id = _d.id, data_status = _d.data_status, documents = _d.documents;
208
239
  isTaxNumberNonEditable = hasNoneEditableValue(data_status, 'tax_number');
209
240
  isConfirmPolicyNonEditable = hasNoneEditableValue(data_status, 'is_vat_acknowledged');
210
241
  isDocumentsNonEditable = hasNoneEditableValue(data_status, 'documents');
211
242
  document = getRecentDocumentBasedOnPurpose(documents, DocumentPurpose.TAX_DOCUMENT);
212
243
  vatId = formData.vatId, confirmPolicy = formData.confirmPolicy, documentId = formData.documentId;
244
+ data = entity || {};
213
245
  requestBody = __assign(__assign({ id: id, vat_id: isTaxNumberNonEditable ? undefined : vatId }, (!isConfirmPolicyNonEditable && {
214
- vat_acknowledged_by: (_g = notification === null || notification === void 0 ? void 0 : notification.recipient) === null || _g === void 0 ? void 0 : _g.id,
246
+ vat_acknowledged_by: recipient === null || recipient === void 0 ? void 0 : recipient.id,
215
247
  is_vat_acknowledged: confirmPolicy
216
248
  })), { step_name: TAX_STEP_NAMES.TAX_INFO });
249
+ if (!isDirty) return [3, 2];
217
250
  return [4, API.entityService.updateEntityInfo(requestBody)];
218
251
  case 1:
219
- data = (_l.sent()).data;
220
- if ((_h = data.errors) === null || _h === void 0 ? void 0 : _h.length)
221
- throw new Error(data.errors[0].description);
222
- if (!(!isDocumentsNonEditable && (documentId || []).length > 0)) return [3, 5];
223
- if (!(document === null || document === void 0 ? void 0 : document.id)) return [3, 3];
252
+ data = _g.sent();
253
+ _g.label = 2;
254
+ case 2:
255
+ if (!(!isDocumentsNonEditable && (documentId || []).length > 0)) return [3, 6];
256
+ if (!(document === null || document === void 0 ? void 0 : document.id)) return [3, 4];
224
257
  documentBody = {
225
258
  id: document === null || document === void 0 ? void 0 : document.id,
226
259
  images: documentId
227
260
  };
228
- _e = data;
229
261
  return [4, API.documentService.addFilesToExistingDocument(documentBody)];
230
- case 2:
231
- _e.documentData = _l.sent();
232
- return [3, 5];
233
262
  case 3:
263
+ documentData = _g.sent();
264
+ data = __assign(__assign({}, data), { documentData: documentData });
265
+ return [3, 6];
266
+ case 4:
234
267
  documentBody = {
235
268
  entity_id: id || '',
236
269
  documents: [
@@ -240,55 +273,53 @@ export var updateTaxInfo = createAsyncThunk('updateTaxInfo', function (_a, thunk
240
273
  }
241
274
  ]
242
275
  };
243
- _f = data;
244
276
  return [4, API.documentService.updateDocumentInfo(documentBody)];
245
- case 4:
246
- _f.documentData = _l.sent();
247
- _l.label = 5;
248
277
  case 5:
278
+ documentData = _g.sent();
279
+ data = __assign(__assign({}, data), { documentData: documentData });
280
+ _g.label = 6;
281
+ case 6:
249
282
  thunkApi.dispatch(handleNextScreenStep());
250
- (_k = (_j = settings.data.appConfig).onStepCompleted) === null || _k === void 0 ? void 0 : _k.call(_j, settings.data.activeScreen.name, requestBody);
283
+ (_f = (_e = settings.data.appConfig).onStepCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, settings.data.activeScreen.name, requestBody);
251
284
  return [2, { data: data, formData: originalFormData }];
252
285
  }
253
286
  });
254
287
  });
255
288
  });
256
289
  export var updateLeadSuccess = createAsyncThunk('taxUpdateLeadSuccess', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
257
- var _a, settings, tax, _b, id, infoId, _c, showBoard, mode, payload, data, boardInfoData, boardData;
258
- var _d, _e, _f, _g, _h, _j, _k, _l, _m;
259
- return __generator(this, function (_o) {
260
- switch (_o.label) {
290
+ var _a, settings, tax, _b, board_id, infoId, _c, showBoard, mode, payload, data, _d, id, type, boardInfoStatusData;
291
+ var _e, _f, _g, _h, _j, _k, _l, _m, _o;
292
+ return __generator(this, function (_p) {
293
+ switch (_p.label) {
261
294
  case 0:
262
295
  _a = thunkApi.getState(), settings = _a.settings, tax = _a.tax;
263
- _b = tax.data.verify.responseBody || {}, id = _b.board_id, infoId = _b.board_info_id;
296
+ _b = tax.data.verify.responseBody || {}, board_id = _b.board_id, infoId = _b.board_info_id;
264
297
  _c = settings.data.appConfig, showBoard = _c.showBoard, mode = _c.mode;
265
- if (!id)
298
+ if (!board_id)
266
299
  return [2];
267
300
  payload = {
268
301
  lang: settings.data.language,
269
302
  step_name: TAX_STEP_NAMES.TAX_SUCCESS
270
303
  };
271
- return [4, API.boardService.updateBoardInfo(__assign({ id: id, infoId: infoId }, payload))];
304
+ return [4, API.boardService.updateBoardInfo(__assign({ id: board_id, infoId: infoId }, payload))];
272
305
  case 1:
273
- data = _o.sent();
306
+ data = _p.sent();
274
307
  if (!showBoard && mode === 'content') {
275
- (_e = (_d = settings.data.appConfig).onStepCompleted) === null || _e === void 0 ? void 0 : _e.call(_d, settings.data.activeScreen.name, {});
276
- (_g = (_f = settings.data.appConfig).onFlowCompleted) === null || _g === void 0 ? void 0 : _g.call(_f, { data: data });
277
- return [2, { response: __assign({}, data), formData: params }];
308
+ (_f = (_e = settings.data.appConfig).onStepCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, settings.data.activeScreen.name, {});
309
+ (_h = (_g = settings.data.appConfig).onFlowCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, { data: data });
310
+ return [2, { data: data }];
278
311
  }
279
- return [4, API.boardService.retrieveBoardInfoStatus(id)];
312
+ _d = ((_j = data === null || data === void 0 ? void 0 : data.notification) === null || _j === void 0 ? void 0 : _j.recipient) || {}, id = _d.id, type = _d.type;
313
+ return [4, Promise.all([
314
+ API.boardService.retrieveBoardInfoStatus(board_id),
315
+ thunkApi.dispatch(retrieveBoardDetails({ boardId: board_id, individualId: id, individualType: type })).unwrap()
316
+ ])];
280
317
  case 2:
281
- boardInfoData = _o.sent();
282
- return [4, API.boardService.retrieveBoardDetails(id)];
283
- case 3:
284
- boardData = _o.sent();
285
- (_j = (_h = settings.data.appConfig).onStepCompleted) === null || _j === void 0 ? void 0 : _j.call(_h, settings.data.activeScreen.name, {});
286
- (_l = (_k = settings.data.appConfig).onFlowCompleted) === null || _l === void 0 ? void 0 : _l.call(_k, { data: data });
318
+ boardInfoStatusData = (_p.sent())[0];
319
+ (_l = (_k = settings.data.appConfig).onStepCompleted) === null || _l === void 0 ? void 0 : _l.call(_k, settings.data.activeScreen.name, {});
320
+ (_o = (_m = settings.data.appConfig).onFlowCompleted) === null || _o === void 0 ? void 0 : _o.call(_m, { data: data });
287
321
  thunkApi.dispatch(handleNextScreenStep());
288
- return [2, {
289
- response: __assign(__assign({}, data), { flows: (boardInfoData === null || boardInfoData === void 0 ? void 0 : boardInfoData.info) || [], user: boardData === null || boardData === void 0 ? void 0 : boardData.user, entity: boardData === null || boardData === void 0 ? void 0 : boardData.entity, brand: boardData === null || boardData === void 0 ? void 0 : boardData.brand, bank_account: boardData === null || boardData === void 0 ? void 0 : boardData.bank_account, vatID: (_m = boardData === null || boardData === void 0 ? void 0 : boardData.entity) === null || _m === void 0 ? void 0 : _m.vat_id, merchant: boardData === null || boardData === void 0 ? void 0 : boardData.merchant, individuals: boardData === null || boardData === void 0 ? void 0 : boardData.individuals, business: boardData === null || boardData === void 0 ? void 0 : boardData.business, board_status: boardData === null || boardData === void 0 ? void 0 : boardData.status }),
290
- formData: params
291
- }];
322
+ return [2, { data: data, flows: (boardInfoStatusData === null || boardInfoStatusData === void 0 ? void 0 : boardInfoStatusData.info) || [] }];
292
323
  }
293
324
  });
294
325
  }); });
@@ -346,13 +377,13 @@ export var taxSlice = createSlice({
346
377
  .addCase(verifyLeadToken.fulfilled, function (state, action) {
347
378
  state.error = null;
348
379
  state.customLoading = false;
349
- var _a = action.payload, data = _a.data, token = _a.token, boardResponse = _a.boardResponse, individualData = _a.individualData;
350
- var user = boardResponse.user, bank_account = boardResponse.bank_account, vatID = boardResponse.vatID, merchant = boardResponse.merchant, individuals = boardResponse.individuals, entity = boardResponse.entity;
351
- state.data.verify.responseBody = __assign(__assign(__assign(__assign({}, data), boardResponse), state.data.verify.responseBody), { board_id: data.id, name: user === null || user === void 0 ? void 0 : user.names, bank_account: bank_account, vatID: vatID, merchant: merchant, individuals: individuals, individualData: individualData });
380
+ var _a = action.payload, data = _a.data, token = _a.token, entityData = _a.entityData;
381
+ var _b = entityData || {}, vat_id = _b.vat_id, is_vat_acknowledged = _b.is_vat_acknowledged;
382
+ state.data.verify.responseBody = __assign(__assign({}, data), { entity: entityData, board_id: data.id });
352
383
  state.data.verify.token = token;
353
- state.data.taxData.vatId = vatID;
354
- if (entity === null || entity === void 0 ? void 0 : entity.is_vat_acknowledged)
355
- state.data.taxData.confirmPolicy = entity === null || entity === void 0 ? void 0 : entity.is_vat_acknowledged;
384
+ state.data.taxData.vatId = vat_id;
385
+ if (is_vat_acknowledged)
386
+ state.data.taxData.confirmPolicy = is_vat_acknowledged;
356
387
  })
357
388
  .addCase(verifyLeadToken.pending, function (state) {
358
389
  state.error = null;
@@ -386,9 +417,14 @@ export var taxSlice = createSlice({
386
417
  .addCase(verifyTaxLeadOTP.fulfilled, function (state, action) {
387
418
  state.loading = false;
388
419
  state.error = null;
389
- var _a = action.payload, data = _a.data, formData = _a.formData;
420
+ var _a = action.payload, data = _a.data, entityData = _a.entityData, formData = _a.formData;
390
421
  state.data.otpData = formData;
391
422
  state.data.otpData.responseBody = data;
423
+ var _b = entityData || {}, vat_id = _b.vat_id, is_vat_acknowledged = _b.is_vat_acknowledged;
424
+ state.data.verify.responseBody = __assign(__assign(__assign({}, state.data.verify.responseBody), data), { board_id: data.id, entity: entityData });
425
+ state.data.taxData.vatId = vat_id;
426
+ if (is_vat_acknowledged)
427
+ state.data.taxData.confirmPolicy = is_vat_acknowledged;
392
428
  })
393
429
  .addCase(verifyTaxLeadOTP.rejected, function (state, action) {
394
430
  state.loading = false;
@@ -403,29 +439,24 @@ export var taxSlice = createSlice({
403
439
  state.error = null;
404
440
  var _a = action.payload, data = _a.data, formData = _a.formData;
405
441
  state.data.taxData = formData;
442
+ state.data.taxData = __assign(__assign({}, formData), { documentId: undefined });
406
443
  state.data.taxData.responseBody = data;
407
444
  })
408
445
  .addCase(updateTaxInfo.rejected, function (state, action) {
409
446
  state.loading = false;
410
447
  state.error = action.error.message;
411
448
  })
412
- .addCase(retrieveEntityInfo.pending, function (state) {
449
+ .addCase(retrieveBoardDetails.pending, function (state) {
413
450
  state.error = null;
414
451
  state.loading = true;
415
452
  })
416
- .addCase(retrieveEntityInfo.fulfilled, function (state, action) {
417
- var _a;
453
+ .addCase(retrieveBoardDetails.fulfilled, function (state, action) {
418
454
  state.error = null;
419
455
  state.loading = false;
420
- var data = (action.payload || {}).data;
421
- var description = (((_a = data === null || data === void 0 ? void 0 : data.errors) === null || _a === void 0 ? void 0 : _a[0]) || {}).description;
422
- if (description) {
423
- state.error = description;
424
- return;
425
- }
456
+ var data = action.payload || {};
426
457
  state.data.verify.responseBody = __assign(__assign({}, state.data.verify.responseBody), data);
427
458
  })
428
- .addCase(retrieveEntityInfo.rejected, function (state, action) {
459
+ .addCase(retrieveBoardDetails.rejected, function (state, action) {
429
460
  state.error = action.error.message;
430
461
  state.loading = false;
431
462
  })
@@ -446,19 +477,9 @@ export var taxSlice = createSlice({
446
477
  .addCase(updateLeadSuccess.fulfilled, function (state, action) {
447
478
  var _a;
448
479
  state.loading = false;
449
- state.data.verify.responseBody = __assign(__assign({}, state.data.verify.responseBody), { updateBoardSuccessLoading: false });
450
480
  state.error = null;
451
- var response = (action.payload || {}).response;
452
- var description = (((_a = response === null || response === void 0 ? void 0 : response.errors) === null || _a === void 0 ? void 0 : _a[0]) || {}).description;
453
- if (description) {
454
- state.error = description;
455
- return;
456
- }
457
- var flows = response.flows, steps = response.steps, user = response.user, bank_account = response.bank_account, vatID = response.vatID, merchant = response.merchant, individuals = response.individuals, entity = response.entity, brand = response.brand, individualData = response.individualData;
458
- var data_state = (((individualData === null || individualData === void 0 ? void 0 : individualData.is_authorized) ? individuals : individualData) || {}).data_state;
459
- state.data.verify.responseBody = __assign(__assign(__assign(__assign({}, state.data.verify.responseBody), { flows: flows, steps: steps, bank_account: bank_account, name: user === null || user === void 0 ? void 0 : user.names, vatID: vatID, merchant: merchant, individuals: individuals, entity: entity, brand: brand }), (individualData && { user: individualData })), (data_state && {
460
- individuals: __assign(__assign({}, individuals), { data_state: data_state })
461
- }));
481
+ var _b = action.payload || {}, flows = _b.flows, data = _b.data;
482
+ state.data.verify.responseBody = __assign(__assign({}, state.data.verify.responseBody), { flows: flows, recipient: (_a = data === null || data === void 0 ? void 0 : data.notification) === null || _a === void 0 ? void 0 : _a.recipient, updateBoardSuccessLoading: false });
462
483
  })
463
484
  .addCase(updateLeadSuccess.pending, function (state) {
464
485
  state.loading = true;
@@ -16,7 +16,7 @@ import Beneficiary from './Beneficiary';
16
16
  import IBAN from './IBAN';
17
17
  import BankName from './BankName';
18
18
  import Button from '../../../shared/Button';
19
- import { useAppDispatch, useAppSelector, useFormReadOnly, useSetFromDefaultValues, useDataNoneEditable, useFormErrorAndUpdateReadOnly, useExcludeReadOnlyFelids, useDataVerified } from '../../../../hooks';
19
+ import { useAppDispatch, useAppSelector, useFormReadOnly, useSetFromDefaultValues, useDataNoneEditable, useFormErrorAndUpdateReadOnly, useExcludeReadOnlyFelids, useDataVerified, useFormDirtyCheck } from '../../../../hooks';
20
20
  import { BankKWFLValidation, BankValidation } from './validation';
21
21
  import { useTranslation } from 'react-i18next';
22
22
  import { useForm, FormProvider } from 'react-hook-form';
@@ -29,7 +29,7 @@ import Form from '../../../../components/Form';
29
29
  import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
30
30
  import ConfirmPolicy from './ConfirmPolicy';
31
31
  import BankStatement from './BankStatement';
32
- import { deepCopy, getFileDetailsFromDocument, isKW, isStringHasOneAsterisk } from '../../../../utils';
32
+ import { deepCopy, getFileDetailsFromDocument, isKW, isStringHasOneAsterisk, sendCustomEventToGTM } from '../../../../utils';
33
33
  var FormStyled = styled(Form)(function () { return ({
34
34
  display: 'flex',
35
35
  flexDirection: 'column',
@@ -50,7 +50,7 @@ var BankDetails = function () {
50
50
  var _e = data.bankData, iban = _e.iban, beneficiaryName = _e.beneficiaryName, bankName = _e.bankName, bankStatementId = _e.bankStatementId, bankStatementUploading = _e.uploading, confirmPolicy = _e.confirmPolicy;
51
51
  var verify = data.verify;
52
52
  var _f = verify.responseBody || {}, bank_account = _f.bank_account, entity = _f.entity, flows = _f.flows;
53
- var _g = bank_account || {}, document = _g.document, data_status = _g.data_status, data_verification = _g.data_verification, beneficiary_name = _g.beneficiary_name, resIban = _g.iban, bank_name = _g.bank_name;
53
+ var _g = bank_account || {}, document = _g.document, data_status = _g.data_status, data_verification = _g.data_verification, beneficiary_name = _g.beneficiary_name, resIban = _g.iban, bank_name = _g.bank_name, is_acknowledged = _g.is_acknowledged;
54
54
  var isKWCountry = React.useMemo(function () { return isKW(settingsData.businessCountry.iso2); }, [settingsData.businessCountry.iso2]);
55
55
  var isFL = ((_a = entity === null || entity === void 0 ? void 0 : entity.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === BusinessType.FL ? true : false;
56
56
  var bankHasDocument = ((_b = document === null || document === void 0 ? void 0 : document.file_details) === null || _b === void 0 ? void 0 : _b.length) > 0;
@@ -71,6 +71,12 @@ var BankDetails = function () {
71
71
  var t = useTranslation().t;
72
72
  var isAr = useLanguage().isAr;
73
73
  var onBack = function () {
74
+ sendCustomEventToGTM({
75
+ event: 'Send Event',
76
+ event_category: 'Board Flows - Wallet',
77
+ event_action: 'Wallet Details Back button',
78
+ event_label: settingsData.businessCountry.iso2
79
+ });
74
80
  if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0) {
75
81
  dispatch(handlePrevScreenStep());
76
82
  return;
@@ -101,9 +107,16 @@ var BankDetails = function () {
101
107
  var isBeneficiaryNameVerified = dataVerified['beneficiary_name'] && beneficiary_name === methods.watch('beneficiaryName');
102
108
  var isIBANVerified = dataVerified['iban'] && resIban === methods.watch('iban');
103
109
  var isBankNameVerified = dataVerified['bank_name'] && bank_name === methods.watch('bankName');
110
+ var isDirty = useFormDirtyCheck(methods, {
111
+ iban: resIban,
112
+ beneficiaryName: beneficiary_name,
113
+ bankName: bank_name,
114
+ confirmPolicy: is_acknowledged
115
+ }).isDirty;
104
116
  var getFelids = useExcludeReadOnlyFelids(methods, readOnly).getFelids;
105
117
  var onSubmit = function (data) {
106
- dispatch(createBankAccount(deepCopy(getFelids(data))));
118
+ var formData = __assign(__assign({}, deepCopy(getFelids(data))), { isDirty: isDirty });
119
+ dispatch(createBankAccount(formData));
107
120
  };
108
121
  var disableBack = settingsData.appConfig.mode === 'content';
109
122
  return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Beneficiary, { readOnly: readOnly['beneficiaryName'] || noneEditable['beneficiary_name'], isVerified: isBeneficiaryNameVerified }), _jsx(IBAN, { fetchingIban: function (value) { return setIbanChecking(value); }, ibanChecking: ibanChecking, readOnly: readOnly['iban'] || noneEditable['iban'], isVerified: isIBANVerified }), _jsx(BankName, { readOnly: readOnly['bankName'] || noneEditable['bank_name'], isVerified: isBankNameVerified }), _jsx(BankStatement, { isVerified: dataVerified['document'], required: isKWCountry && isFL && !bankHasDocument, defaultFiles: defaultBankFiles, readOnly: readOnly['bankStatementId'] || noneEditable['bank_statement_file_id'] }), _jsx(ConfirmPolicy, { readOnly: readOnly['confirmPolicy'] || noneEditable['is_acknowledged'] }), _jsx(ButtonStyled, __assign({ disableBack: disableBack, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('confirm') }))] })) })) }));