@tap-payments/auth-jsconnect 2.6.98-test → 2.6.101-test

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 (42) hide show
  1. package/build/@types/form.d.ts +0 -1
  2. package/build/app/settings.d.ts +3 -4
  3. package/build/app/settings.js +6 -9
  4. package/build/constants/app.js +13 -1
  5. package/build/features/app/auth/authStore.d.ts +14 -9
  6. package/build/features/app/auth/authStore.js +99 -25
  7. package/build/features/app/connectExpress/connectExpressStore.d.ts +1 -1
  8. package/build/features/auth/screens/AccountCreatedLoader/AccountCreatedLoader.d.ts +5 -0
  9. package/build/features/auth/screens/AccountCreatedLoader/AccountCreatedLoader.js +36 -0
  10. package/build/features/auth/screens/AccountCreatedLoader/index.d.ts +2 -0
  11. package/build/features/auth/screens/AccountCreatedLoader/index.js +2 -0
  12. package/build/features/auth/screens/AuthMerchant/AuthMerchant.d.ts +5 -0
  13. package/build/features/auth/screens/AuthMerchant/AuthMerchant.js +73 -0
  14. package/build/features/auth/screens/{AuthenticationList → AuthMerchant}/MerchantList.d.ts +2 -1
  15. package/build/features/auth/screens/AuthMerchant/MerchantList.js +64 -0
  16. package/build/features/auth/screens/AuthMerchant/index.d.ts +2 -0
  17. package/build/features/auth/screens/AuthMerchant/index.js +2 -0
  18. package/build/features/auth/screens/AuthMerchant/validation.d.ts +8 -0
  19. package/build/features/auth/screens/AuthMerchant/validation.js +4 -0
  20. package/build/features/auth/screens/AuthenticationList/AuthenticationList.js +28 -17
  21. package/build/features/auth/screens/AuthenticationList/EntityLegalName.d.ts +3 -0
  22. package/build/features/auth/screens/AuthenticationList/EntityLegalName.js +48 -0
  23. package/build/features/auth/screens/AuthenticationList/EntityLicenseType.d.ts +31 -0
  24. package/build/features/auth/screens/AuthenticationList/EntityLicenseType.js +90 -0
  25. package/build/features/auth/screens/AuthenticationList/EntityList.d.ts +3 -3
  26. package/build/features/auth/screens/AuthenticationList/EntityList.js +51 -9
  27. package/build/features/auth/screens/AuthenticationList/LicenseNumber.d.ts +3 -0
  28. package/build/features/auth/screens/AuthenticationList/LicenseNumber.js +36 -0
  29. package/build/features/auth/screens/AuthenticationList/validation.d.ts +13 -7
  30. package/build/features/auth/screens/AuthenticationList/validation.js +66 -6
  31. package/build/features/bank/Bank.js +3 -3
  32. package/build/features/brand/Brand.js +3 -3
  33. package/build/features/connectExpress/screens/AuthenticationList/EntityList.js +1 -0
  34. package/build/features/entity/Entity.js +3 -3
  35. package/build/features/featuresScreens.js +10 -0
  36. package/build/features/individual/Individual.js +3 -3
  37. package/build/features/password/Password.js +1 -1
  38. package/build/features/tax/Tax.js +3 -3
  39. package/build/hooks/useAppConfig.js +2 -3
  40. package/build/utils/locale.js +2 -1
  41. package/package.json +1 -1
  42. package/build/features/auth/screens/AuthenticationList/MerchantList.js +0 -110
@@ -147,7 +147,6 @@ export declare type BusinessDataFormValues = {
147
147
  export declare type AuthenticationListFormValues = {
148
148
  brandInfo?: BrandInfo;
149
149
  entityInfo?: EntityLicenseAuth;
150
- merchantInfo?: AuthMerchantInfo;
151
150
  licenseNumber?: string;
152
151
  legalName?: string;
153
152
  licenseType?: string;
@@ -1,5 +1,5 @@
1
1
  import { RootState } from './store';
2
- import { ActionState, LanguageMode, SharedState, ThemeMode, ScreenStepNavigation, DeviceInfo, LibConfig, CountryCode, MerchantInfo, ConfigExpressTokenParams, BusinessCountryInfo } from '../@types';
2
+ import { ActionState, LanguageMode, SharedState, ThemeMode, ScreenStepNavigation, DeviceInfo, LibConfig, CountryCode, MerchantInfo, ConfigExpressTokenParams, BusinessCountryInfo, LocalProps } from '../@types';
3
3
  interface SettingParams {
4
4
  disableCountries?: boolean;
5
5
  disableLocale?: boolean;
@@ -33,13 +33,12 @@ export interface SettingsData {
33
33
  authId?: string;
34
34
  ipCountry: CountryCode;
35
35
  businessCountries: Array<BusinessCountryInfo>;
36
+ locale?: LocalProps;
36
37
  }
37
38
  export interface SettingsState extends SharedState<SettingsData> {
38
- internalLoading: boolean;
39
39
  }
40
40
  export declare const settingsSlice: import("@reduxjs/toolkit").Slice<SettingsState, {
41
41
  storeAuthId: (state: import("immer/dist/internal").WritableDraft<SettingsState>, action: ActionState<string>) => void;
42
- updateInternalLoading: (state: import("immer/dist/internal").WritableDraft<SettingsState>, action: ActionState<boolean>) => void;
43
42
  handelBoardMaturity: (state: import("immer/dist/internal").WritableDraft<SettingsState>, action: ActionState<boolean>) => void;
44
43
  handleIsTapOrigin: (state: import("immer/dist/internal").WritableDraft<SettingsState>, action: ActionState<boolean>) => void;
45
44
  handleOpen: (state: import("immer/dist/internal").WritableDraft<SettingsState>, action: ActionState<boolean>) => void;
@@ -54,7 +53,7 @@ export declare const settingsSlice: import("@reduxjs/toolkit").Slice<SettingsSta
54
53
  handleSetAppConfig: (state: SettingsState, action: ActionState<LibConfig>) => void;
55
54
  handleSetCountryByIso2: (state: SettingsState, action: ActionState<string>) => void;
56
55
  }, "settings">;
57
- export declare const storeAuthId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, updateInternalLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handleSkin: import("@reduxjs/toolkit").ActionCreatorWithPayload<ThemeMode, string>, handleLanguage: import("@reduxjs/toolkit").ActionCreatorWithPayload<LanguageMode, string>, handleActiveFlowScreens: import("@reduxjs/toolkit").ActionCreatorWithPayload<ScreenStepNavigation[], string>, handleNextScreenStep: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, string>, handlePrevScreenStep: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, string>, handleCurrentActiveScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleSetAppConfig: import("@reduxjs/toolkit").ActionCreatorWithPayload<LibConfig, string>, handleOpen: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handleSetCountryByIso2: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleIsTapOrigin: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handelBoardMaturity: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handlePublicKey: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleSwitchCalender: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
56
+ export declare const storeAuthId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleSkin: import("@reduxjs/toolkit").ActionCreatorWithPayload<ThemeMode, string>, handleLanguage: import("@reduxjs/toolkit").ActionCreatorWithPayload<LanguageMode, string>, handleActiveFlowScreens: import("@reduxjs/toolkit").ActionCreatorWithPayload<ScreenStepNavigation[], string>, handleNextScreenStep: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, string>, handlePrevScreenStep: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, string>, handleCurrentActiveScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleSetAppConfig: import("@reduxjs/toolkit").ActionCreatorWithPayload<LibConfig, string>, handleOpen: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handleSetCountryByIso2: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleIsTapOrigin: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handelBoardMaturity: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, handlePublicKey: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, handleSwitchCalender: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
58
57
  declare const _default: import("redux").Reducer<SettingsState, import("redux").AnyAction>;
59
58
  export default _default;
60
59
  export declare const settingsSelector: (state: RootState) => SettingsState;
@@ -193,7 +193,6 @@ export var onCloseComplete = createAsyncThunk('settings/onCloseComplete', functi
193
193
  var initialState = {
194
194
  error: null,
195
195
  loading: true,
196
- internalLoading: true,
197
196
  data: {
198
197
  boardMaturity: true,
199
198
  authId: '',
@@ -221,9 +220,6 @@ export var settingsSlice = createSlice({
221
220
  storeAuthId: function (state, action) {
222
221
  state.data.authId = action.payload;
223
222
  },
224
- updateInternalLoading: function (state, action) {
225
- state.internalLoading = action.payload;
226
- },
227
223
  handelBoardMaturity: function (state, action) {
228
224
  state.data.boardMaturity = action.payload;
229
225
  },
@@ -325,14 +321,16 @@ export var settingsSlice = createSlice({
325
321
  },
326
322
  handleSetCountryByIso2: function (state, action) {
327
323
  var country = findCountryByIso2(state.data.countries, action.payload);
328
- if (country)
324
+ if (country) {
325
+ if (state.data.locale && country.iso2)
326
+ updateLocale(state.data.locale, country.iso2);
329
327
  state.data.businessCountry = country;
328
+ }
330
329
  }
331
330
  },
332
331
  extraReducers: function (builder) {
333
332
  builder.addCase(fetchAppSettingsSync.pending, function (state) {
334
333
  state.loading = true;
335
- state.internalLoading = false;
336
334
  state.error = null;
337
335
  });
338
336
  builder.addCase(fetchAppSettingsSync.fulfilled, function (state, action) {
@@ -340,6 +338,7 @@ export var settingsSlice = createSlice({
340
338
  state.data.countries = countries;
341
339
  state.data.businessCountry = businessCountry;
342
340
  state.data.ipCountry = ipCountry;
341
+ state.data.locale = locale;
343
342
  state.data.deviceInfo = deviceInfo;
344
343
  state.data.isValidOperator = isValidOperator;
345
344
  if (merchant)
@@ -349,17 +348,15 @@ export var settingsSlice = createSlice({
349
348
  if (locale && countryIso2)
350
349
  updateLocale(locale, countryIso2);
351
350
  state.loading = false;
352
- state.internalLoading = false;
353
351
  if (state.data.appConfig.onReady)
354
352
  state.data.appConfig.onReady();
355
353
  });
356
354
  builder.addCase(fetchAppSettingsSync.rejected, function (state, action) {
357
355
  state.loading = false;
358
- state.internalLoading = false;
359
356
  state.error = action.error.message;
360
357
  });
361
358
  }
362
359
  });
363
- export var storeAuthId = (_a = settingsSlice.actions, _a.storeAuthId), updateInternalLoading = _a.updateInternalLoading, handleSkin = _a.handleSkin, handleLanguage = _a.handleLanguage, handleActiveFlowScreens = _a.handleActiveFlowScreens, handleNextScreenStep = _a.handleNextScreenStep, handlePrevScreenStep = _a.handlePrevScreenStep, handleCurrentActiveScreen = _a.handleCurrentActiveScreen, handleSetAppConfig = _a.handleSetAppConfig, handleOpen = _a.handleOpen, handleSetCountryByIso2 = _a.handleSetCountryByIso2, handleIsTapOrigin = _a.handleIsTapOrigin, handelBoardMaturity = _a.handelBoardMaturity, handlePublicKey = _a.handlePublicKey, handleSwitchCalender = _a.handleSwitchCalender;
360
+ export var storeAuthId = (_a = settingsSlice.actions, _a.storeAuthId), handleSkin = _a.handleSkin, handleLanguage = _a.handleLanguage, handleActiveFlowScreens = _a.handleActiveFlowScreens, handleNextScreenStep = _a.handleNextScreenStep, handlePrevScreenStep = _a.handlePrevScreenStep, handleCurrentActiveScreen = _a.handleCurrentActiveScreen, handleSetAppConfig = _a.handleSetAppConfig, handleOpen = _a.handleOpen, handleSetCountryByIso2 = _a.handleSetCountryByIso2, handleIsTapOrigin = _a.handleIsTapOrigin, handelBoardMaturity = _a.handelBoardMaturity, handlePublicKey = _a.handlePublicKey, handleSwitchCalender = _a.handleSwitchCalender;
364
361
  export default settingsSlice.reducer;
365
362
  export var settingsSelector = function (state) { return state.settings; };
@@ -264,9 +264,21 @@ export var AUTH_SCREENS_NAVIGATION = [
264
264
  },
265
265
  {
266
266
  name: 'AUTH_AUTHENTICATION_LIST_STEP',
267
- next: '',
267
+ next: ['AUTH_MERCHANT_LIST_STEP', 'AUTH_ACCOUNT_CREATED_STEP'],
268
268
  prev: ['AUTH_MOBILE_STEP', 'AUTH_NID_STEP', 'AUTH_CIVIL_ID_STEP'],
269
269
  order: 3
270
+ },
271
+ {
272
+ name: 'AUTH_ACCOUNT_CREATED_STEP',
273
+ next: '',
274
+ prev: 'AUTH_AUTHENTICATION_LIST_STEP',
275
+ order: 4
276
+ },
277
+ {
278
+ name: 'AUTH_MERCHANT_LIST_STEP',
279
+ next: '',
280
+ prev: 'AUTH_AUTHENTICATION_LIST_STEP',
281
+ order: 4
270
282
  }
271
283
  ];
272
284
  export var BUSINESS_SCREENS_NAVIGATION = [
@@ -1,5 +1,5 @@
1
1
  import { RootState } from '../../../app/store';
2
- import { ActionState, AuthForType, AuthenticationListFormValues, CivilFormValues, CountryCode, FlowsTypes, MobileFormValues, NIDFormValues, OTPFormValues, SharedState } from '../../../@types';
2
+ import { ActionState, AuthForType, AuthMerchantFormValues, AuthenticationListFormValues, CivilFormValues, CountryCode, FlowsTypes, MobileFormValues, NIDFormValues, OTPFormValues, SharedState } from '../../../@types';
3
3
  export declare const updateBusinessCountry: import("@reduxjs/toolkit").AsyncThunk<any, string, {}>;
4
4
  export declare const retrieveLeadIdentityByIdAsync: import("@reduxjs/toolkit").AsyncThunk<{
5
5
  data: any;
@@ -35,11 +35,16 @@ export declare const checkAccountAvailability: import("@reduxjs/toolkit").AsyncT
35
35
  brandList: any;
36
36
  entityList: any;
37
37
  }, void, {}>;
38
- export declare const getMerchantList: import("@reduxjs/toolkit").AsyncThunk<any, {
39
- entityId: string;
40
- brandId: string;
41
- }, {}>;
42
- export declare const confirmInfo: import("@reduxjs/toolkit").AsyncThunk<void, AuthenticationListFormValues & {
38
+ export declare const getMerchantList: import("@reduxjs/toolkit").AsyncThunk<{
39
+ list: any;
40
+ brandInfo: import("../../../@types").BrandInfo | undefined;
41
+ entityInfo: import("../../../@types").EntityLicenseAuth | undefined;
42
+ }, AuthenticationListFormValues, {}>;
43
+ export declare const createEntity: import("@reduxjs/toolkit").AsyncThunk<{
44
+ data: any;
45
+ formData: AuthenticationListFormValues;
46
+ }, AuthenticationListFormValues, {}>;
47
+ export declare const confirmInfo: import("@reduxjs/toolkit").AsyncThunk<void, AuthenticationListFormValues & AuthMerchantFormValues & {
43
48
  authId?: string | undefined;
44
49
  }, {}>;
45
50
  export declare const onSignUp: import("@reduxjs/toolkit").AsyncThunk<void, void, {}>;
@@ -57,11 +62,10 @@ export interface authData {
57
62
  isStartFromBusinessCountry?: boolean;
58
63
  flowName: FlowsTypes;
59
64
  authenticationData: AuthenticationListFormValues;
65
+ authMerchantData: AuthMerchantFormValues;
60
66
  }
61
67
  export interface AuthState extends SharedState<authData & ResponseData> {
62
68
  customLoading?: boolean;
63
- merchantLoading?: boolean;
64
- terminalLoading?: boolean;
65
69
  }
66
70
  export declare const authSlice: import("@reduxjs/toolkit").Slice<AuthState, {
67
71
  setLeadId(state: AuthState, action: ActionState<string>): void;
@@ -70,8 +74,9 @@ export declare const authSlice: import("@reduxjs/toolkit").Slice<AuthState, {
70
74
  storeIsStartFromBusinessCountry: (state: AuthState, action: ActionState<boolean>) => void;
71
75
  resetStore: (state: AuthState) => void;
72
76
  resetOTPValue: (state: AuthState) => void;
77
+ resetAuthenticationScreen: (state: AuthState) => void;
73
78
  }, "auth/store">;
74
- export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setMobileCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, setLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, resetOTPValue: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, storeIsStartFromBusinessCountry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
79
+ export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setMobileCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, setLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, resetOTPValue: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, storeIsStartFromBusinessCountry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, resetAuthenticationScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
75
80
  declare const _default: import("redux").Reducer<AuthState, import("redux").AnyAction>;
76
81
  export default _default;
77
82
  export declare const authSelector: (state: RootState) => AuthState;
@@ -45,10 +45,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
45
45
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
46
  }
47
47
  };
48
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
+ if (ar || !(i in from)) {
51
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
+ ar[i] = from[i];
53
+ }
54
+ }
55
+ return to.concat(ar || Array.prototype.slice.call(from));
56
+ };
48
57
  var _a;
49
58
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
50
59
  import { AuthForType, FlowsTypes } from '../../../@types';
51
- import { AUTH_STEP_NAMES, IDENTIFICATION_TYPE, defaultCountry } from '../../../constants';
60
+ import { ADD_NEW_ENTITY, AUTH_STEP_NAMES, IDENTIFICATION_TYPE, defaultCountry } from '../../../constants';
52
61
  import API from '../../../api';
53
62
  import { handleCurrentActiveScreen, handleNextScreenStep, handleOpen, handleSetCountryByIso2 } from '../../../app/settings';
54
63
  import { findCountryByIddPrefix, isSA, openConnect, sleep } from '../../../utils';
@@ -437,22 +446,60 @@ export var checkAccountAvailability = createAsyncThunk('auth/checkAccountAvailab
437
446
  }
438
447
  });
439
448
  }); });
440
- export var getMerchantList = createAsyncThunk('auth/getMerchantList', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
441
- var settings, payload, merchants;
442
- return __generator(this, function (_a) {
443
- switch (_a.label) {
449
+ export var getMerchantList = createAsyncThunk('auth/getMerchantList', function (_a, thunkApi) {
450
+ var brandInfo = _a.brandInfo, entityInfo = _a.entityInfo;
451
+ return __awaiter(void 0, void 0, void 0, function () {
452
+ var settings, payload, merchants, list;
453
+ return __generator(this, function (_b) {
454
+ switch (_b.label) {
455
+ case 0:
456
+ settings = thunkApi.getState().settings;
457
+ payload = {
458
+ business_entity_id: (entityInfo === null || entityInfo === void 0 ? void 0 : entityInfo.id) || '',
459
+ brand_id: (brandInfo === null || brandInfo === void 0 ? void 0 : brandInfo.id) || '',
460
+ create_if_not_present: true,
461
+ platforms: settings.data.appConfig.platforms
462
+ };
463
+ return [4, API.entityService.getMerchantListUsingEntityId(payload)];
464
+ case 1:
465
+ merchants = (_b.sent()).merchants;
466
+ list = merchants || [];
467
+ if ((list === null || list === void 0 ? void 0 : list.length) > 1) {
468
+ thunkApi.dispatch(handleNextScreenStep('AUTH_MERCHANT_LIST_STEP'));
469
+ return [2, { list: list, brandInfo: brandInfo, entityInfo: entityInfo }];
470
+ }
471
+ sleep(50).then(function () { return thunkApi.dispatch(handleNextScreenStep('AUTH_ACCOUNT_CREATED_STEP')); });
472
+ return [2, { list: list, brandInfo: brandInfo, entityInfo: entityInfo }];
473
+ }
474
+ });
475
+ });
476
+ });
477
+ export var createEntity = createAsyncThunk('auth/createEntity', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
478
+ var settings, brandInfo, legalName, licenseNumber, licenseType, body, data;
479
+ var _a;
480
+ return __generator(this, function (_b) {
481
+ switch (_b.label) {
444
482
  case 0:
445
483
  settings = thunkApi.getState().settings;
446
- payload = {
447
- business_entity_id: params.entityId,
448
- brand_id: params.brandId,
449
- create_if_not_present: true,
450
- platforms: settings.data.appConfig.platforms
484
+ brandInfo = params.brandInfo, legalName = params.legalName, licenseNumber = params.licenseNumber, licenseType = params.licenseType;
485
+ body = {
486
+ business_id: (brandInfo === null || brandInfo === void 0 ? void 0 : brandInfo.business_id) || '',
487
+ entity: {
488
+ legal_name: {
489
+ en: legalName || '',
490
+ ar: legalName || ''
491
+ },
492
+ license: {
493
+ number: licenseNumber || '',
494
+ type: licenseType || ''
495
+ },
496
+ country: (_a = settings.data.businessCountry) === null || _a === void 0 ? void 0 : _a.iso2
497
+ }
451
498
  };
452
- return [4, API.entityService.getMerchantListUsingEntityId(payload)];
499
+ return [4, API.entityService.createEntity(body)];
453
500
  case 1:
454
- merchants = (_a.sent()).merchants;
455
- return [2, merchants || []];
501
+ data = _b.sent();
502
+ return [2, { data: data, formData: params }];
456
503
  }
457
504
  });
458
505
  }); });
@@ -551,7 +598,9 @@ var initialState = {
551
598
  },
552
599
  authenticationData: {
553
600
  brandInfo: undefined,
554
- entityInfo: undefined,
601
+ entityInfo: undefined
602
+ },
603
+ authMerchantData: {
555
604
  merchantInfo: undefined
556
605
  }
557
606
  }
@@ -577,6 +626,9 @@ export var authSlice = createSlice({
577
626
  },
578
627
  resetOTPValue: function (state) {
579
628
  state.data.otpData.otp = '';
629
+ },
630
+ resetAuthenticationScreen: function (state) {
631
+ state.data.authenticationData = __assign(__assign({}, state.data.authenticationData), initialState.data.authenticationData);
580
632
  }
581
633
  },
582
634
  extraReducers: function (builder) {
@@ -732,33 +784,35 @@ export var authSlice = createSlice({
732
784
  state.error = null;
733
785
  })
734
786
  .addCase(checkAccountAvailability.fulfilled, function (state, action) {
787
+ state.error = null;
735
788
  state.loading = false;
736
789
  var _a = action.payload, brandList = _a.brandList, entityList = _a.entityList;
790
+ var eList = __spreadArray(__spreadArray([], entityList, true), [ADD_NEW_ENTITY], false);
737
791
  if (brandList === null || brandList === void 0 ? void 0 : brandList.length)
738
792
  state.data.authenticationData.brandInfo = brandList[0];
739
- if (entityList === null || entityList === void 0 ? void 0 : entityList.length)
740
- state.data.authenticationData.entityInfo = entityList[0];
741
- state.data.responseData = __assign(__assign({}, state.data.responseData), { brandList: brandList, entityList: entityList });
793
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { brandList: brandList, entityList: eList });
742
794
  })
743
795
  .addCase(checkAccountAvailability.rejected, function (state, action) {
744
796
  state.loading = false;
745
797
  state.error = action.error.message;
746
798
  })
747
799
  .addCase(getMerchantList.pending, function (state) {
748
- state.merchantLoading = true;
800
+ state.loading = true;
749
801
  state.error = null;
750
802
  })
751
803
  .addCase(getMerchantList.fulfilled, function (state, action) {
752
- state.merchantLoading = false;
804
+ state.loading = false;
753
805
  state.error = null;
754
- var merchantList = action.payload;
755
- if (merchantList === null || merchantList === void 0 ? void 0 : merchantList.length) {
756
- state.data.authenticationData.merchantInfo = merchantList[0];
806
+ var _a = action.payload, list = _a.list, brandInfo = _a.brandInfo, entityInfo = _a.entityInfo;
807
+ state.data.authenticationData.brandInfo = brandInfo;
808
+ state.data.authenticationData.entityInfo = entityInfo;
809
+ if (list === null || list === void 0 ? void 0 : list.length) {
810
+ state.data.authMerchantData.merchantInfo = list[0];
757
811
  }
758
- state.data.responseData = __assign(__assign({}, state.data.responseData), { merchantList: merchantList });
812
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { merchantList: list });
759
813
  })
760
814
  .addCase(getMerchantList.rejected, function (state, action) {
761
- state.merchantLoading = false;
815
+ state.loading = false;
762
816
  state.error = action.error.message;
763
817
  })
764
818
  .addCase(confirmInfo.pending, function (state) {
@@ -784,9 +838,29 @@ export var authSlice = createSlice({
784
838
  .addCase(onSignUp.rejected, function (state, action) {
785
839
  state.loading = false;
786
840
  state.error = action.error.message;
841
+ })
842
+ .addCase(createEntity.pending, function (state) {
843
+ state.loading = true;
844
+ state.error = null;
845
+ })
846
+ .addCase(createEntity.rejected, function (state, action) {
847
+ state.loading = false;
848
+ state.error = action.error.message;
849
+ })
850
+ .addCase(createEntity.fulfilled, function (state, action) {
851
+ state.loading = false;
852
+ state.error = null;
853
+ var data = action.payload.data;
854
+ var entityList = (state.data.responseData || {}).entityList;
855
+ if (data === null || data === void 0 ? void 0 : data.entity) {
856
+ var entity = __assign(__assign({}, data.entity), { business_id: data === null || data === void 0 ? void 0 : data.business_id });
857
+ var list = __spreadArray([entity], entityList, true);
858
+ state.data.authenticationData.entityInfo = list[0];
859
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { entityData: data, entityList: list });
860
+ }
787
861
  });
788
862
  }
789
863
  });
790
- export var clearError = (_a = authSlice.actions, _a.clearError), resetStore = _a.resetStore, setMobileCountryCode = _a.setMobileCountryCode, setLeadId = _a.setLeadId, resetOTPValue = _a.resetOTPValue, storeIsStartFromBusinessCountry = _a.storeIsStartFromBusinessCountry;
864
+ export var clearError = (_a = authSlice.actions, _a.clearError), resetStore = _a.resetStore, setMobileCountryCode = _a.setMobileCountryCode, setLeadId = _a.setLeadId, resetOTPValue = _a.resetOTPValue, storeIsStartFromBusinessCountry = _a.storeIsStartFromBusinessCountry, resetAuthenticationScreen = _a.resetAuthenticationScreen;
791
865
  export default authSlice.reducer;
792
866
  export var authSelector = function (state) { return state.auth; };
@@ -108,7 +108,7 @@ export declare const updateLeadBusinessDataAsync: import("@reduxjs/toolkit").Asy
108
108
  response: any;
109
109
  formData: BusinessDataFormValues;
110
110
  }, AsyncThunkParams<BusinessDataFormValues>, {}>;
111
- export declare const confirmInfo: import("@reduxjs/toolkit").AsyncThunk<void, AuthenticationListFormValues, {}>;
111
+ export declare const confirmInfo: import("@reduxjs/toolkit").AsyncThunk<void, AuthenticationListFormValues & AuthMerchantFormValues, {}>;
112
112
  export declare const onCloseCompleteAsync: import("@reduxjs/toolkit").AsyncThunk<void, void, {}>;
113
113
  interface ResponseData {
114
114
  responseData?: Record<string, any>;
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface AccountCreatedLoaderProps {
3
+ }
4
+ declare const _default: React.MemoExoticComponent<({}: AccountCreatedLoaderProps) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,36 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import { useTranslation } from 'react-i18next';
15
+ import { isNetworkError } from '../../../../utils';
16
+ import { useAppDispatch, useAppSelector, useLanguage } from '../../../../hooks';
17
+ import { confirmInfo, authSelector } from '../../../app/auth/authStore';
18
+ import Button from '../../../shared/Button';
19
+ import DataLoading from '../../../shared/DataLoading';
20
+ var AccountCreatedLoader = function (_a) {
21
+ var dispatch = useAppDispatch();
22
+ var isAr = useLanguage().isAr;
23
+ var t = useTranslation().t;
24
+ var _b = useAppSelector(authSelector), error = _b.error, loading = _b.loading, data = _b.data;
25
+ var _c = data.authenticationData, brandInfo = _c.brandInfo, entityInfo = _c.entityInfo;
26
+ var merchantInfo = data.authMerchantData.merchantInfo;
27
+ React.useEffect(function () {
28
+ dispatch(confirmInfo({ entityInfo: entityInfo, brandInfo: brandInfo, merchantInfo: merchantInfo }));
29
+ }, []);
30
+ var onReTry = function () {
31
+ dispatch(confirmInfo({ entityInfo: entityInfo, brandInfo: brandInfo, merchantInfo: merchantInfo }));
32
+ };
33
+ var isNE = React.useMemo(function () { return isNetworkError(error); }, [error]);
34
+ return (_jsx(DataLoading, __assign({ error: error, title: 'account_already_created', hideSubtitle: true }, { children: isNE && (_jsx(Button, __assign({ onClick: onReTry, disableBack: true, isAr: isAr, loading: loading }, { children: t('try_again') }))) })));
35
+ };
36
+ export default React.memo(AccountCreatedLoader);
@@ -0,0 +1,2 @@
1
+ import AccountCreatedLoader from './AccountCreatedLoader';
2
+ export default AccountCreatedLoader;
@@ -0,0 +1,2 @@
1
+ import AccountCreatedLoader from './AccountCreatedLoader';
2
+ export default AccountCreatedLoader;
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface AuthMerchantProps {
3
+ }
4
+ declare const _default: React.MemoExoticComponent<({}: AuthMerchantProps) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,73 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import { useForm, FormProvider } from 'react-hook-form';
15
+ import { useTranslation } from 'react-i18next';
16
+ import Collapse from '@mui/material/Collapse';
17
+ import { yupResolver } from '@hookform/resolvers/yup';
18
+ import { useAppDispatch, useAppSelector } from '../../../../hooks';
19
+ import { handlePrevScreenStep } from '../../../../app/settings';
20
+ import { deepCopy, sendCustomEventToGTM } from '../../../../utils';
21
+ import Form from '../../../../components/Form';
22
+ import { ScreenContainer } from '../../../shared/Containers';
23
+ import Button from '../../../shared/Button';
24
+ import { clearError, authSelector, confirmInfo } from '../../../app/auth/authStore';
25
+ import { useLanguage } from '../../../../hooks';
26
+ import { AuthMerchantValidationSchema } from './validation';
27
+ import MerchantList from './MerchantList';
28
+ var AuthMerchant = function (_a) {
29
+ var _b = useAppSelector(authSelector), data = _b.data, loading = _b.loading, error = _b.error;
30
+ var _c = data.authenticationData, brandInfo = _c.brandInfo, entityInfo = _c.entityInfo;
31
+ var merchantInfo = data.authMerchantData.merchantInfo;
32
+ var _d = React.useState(false), listActive = _d[0], setListActive = _d[1];
33
+ var merchantList = (data.responseData || {}).merchantList;
34
+ React.useEffect(function () {
35
+ sendCustomEventToGTM({
36
+ event: 'Send Event',
37
+ event_category: 'User Authentication Flow',
38
+ event_action: 'Authentication Merchant List Step'
39
+ });
40
+ }, []);
41
+ var methods = useForm({
42
+ resolver: yupResolver(AuthMerchantValidationSchema),
43
+ defaultValues: {
44
+ merchantInfo: merchantInfo
45
+ },
46
+ mode: 'onChange'
47
+ });
48
+ var t = useTranslation().t;
49
+ var isAr = useLanguage().isAr;
50
+ var dispatch = useAppDispatch();
51
+ var onSubmit = function (formData) {
52
+ dispatch(confirmInfo(__assign({ brandInfo: brandInfo, entityInfo: entityInfo }, deepCopy(formData))));
53
+ };
54
+ var onBack = function () {
55
+ dispatch(handlePrevScreenStep());
56
+ };
57
+ React.useEffect(function () {
58
+ if (merchantInfo && !methods.getValues('merchantInfo'))
59
+ methods.setValue('merchantInfo', merchantInfo, { shouldValidate: true });
60
+ }, [merchantInfo]);
61
+ React.useEffect(function () {
62
+ if (error)
63
+ dispatch(clearError());
64
+ }, [methods.formState.isValid]);
65
+ var disabled = !methods.formState.isValid;
66
+ var handleMenuClick = function (flag) {
67
+ if (error)
68
+ dispatch(clearError());
69
+ setListActive(flag);
70
+ };
71
+ return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(MerchantList, { list: merchantList || [], onListOpen: function () { return handleMenuClick(true); }, onListClose: function () { return handleMenuClick(false); } }), _jsx(Collapse, __assign({ in: !listActive, timeout: 500 }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, error: t(error || ''), loading: loading }, { children: t('confirm') })) }))] })) })) }));
72
+ };
73
+ export default React.memo(AuthMerchant);
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { AuthMerchantInfo } from '../../../../@types';
2
3
  interface MerchantListProps {
3
- show: boolean;
4
+ list: Array<AuthMerchantInfo>;
4
5
  onListOpen?: () => void;
5
6
  onListClose?: () => void;
6
7
  readOnly?: boolean;
@@ -0,0 +1,64 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import { useTranslation } from 'react-i18next';
15
+ import { useController, useFormContext } from 'react-hook-form';
16
+ import { styled } from '@mui/material/styles';
17
+ import Box from '@mui/material/Box';
18
+ import Collapse from '../../../../components/Collapse';
19
+ import Text from '../../../../components/Text';
20
+ import SimpleList from '../../../../components/SimpleList';
21
+ import ScreenContainer from '../../../shared/Containers/ScreenContainer';
22
+ import InputSelect from '../../../shared/InputSelect';
23
+ import { EndAdornmentExpanded } from '../../../shared/EndAdornment';
24
+ import CheckIcon from '../../../shared/CheckIcon';
25
+ var MerchantContainer = styled(Box)(function () { return ({
26
+ display: 'flex'
27
+ }); });
28
+ var MerchantNameText = styled(Text, { shouldForwardProp: function (prop) { return prop !== 'isSelected'; } })(function (_a) {
29
+ var theme = _a.theme, isSelected = _a.isSelected;
30
+ return (__assign(__assign({ color: theme.palette.text.primary }, theme.typography.body2), { fontWeight: isSelected ? theme.typography.fontWeightMedium : theme.typography.fontWeightLight }));
31
+ });
32
+ var MerchantList = React.forwardRef(function (_a, ref) {
33
+ var _b;
34
+ var list = _a.list, onListOpen = _a.onListOpen, onListClose = _a.onListClose, readOnly = _a.readOnly, isVerified = _a.isVerified;
35
+ var _c = React.useState(null), anchorEl = _c[0], setAnchorEl = _c[1];
36
+ var t = useTranslation().t;
37
+ var _d = useFormContext(), control = _d.control, getValues = _d.getValues;
38
+ var merchantInfoControl = useController({ control: control, name: 'merchantInfo' });
39
+ var merchantValue = merchantInfoControl.field.value;
40
+ var error = (_b = merchantInfoControl.fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
41
+ var onOpenMerchantSelect = function (event) {
42
+ if (readOnly)
43
+ return;
44
+ setAnchorEl(event.currentTarget);
45
+ onListOpen === null || onListOpen === void 0 ? void 0 : onListOpen();
46
+ };
47
+ var onCloseMerchantSelect = function () {
48
+ setAnchorEl(null);
49
+ onListClose === null || onListClose === void 0 ? void 0 : onListClose();
50
+ };
51
+ var onSelectItem = function (merchant) {
52
+ onCloseMerchantSelect();
53
+ merchantInfoControl.field.onChange(merchant);
54
+ };
55
+ var getName = function (merchant) {
56
+ if (!merchant)
57
+ return '';
58
+ return merchant.display_name;
59
+ };
60
+ return (_jsxs(ScreenContainer, __assign({ ref: ref, sx: { mt: 2.5, mb: 2.5 } }, { children: [_jsx(InputSelect, { label: t('select_merchant_label'), readOnly: readOnly, placeholder: t('select_merchant_placeholder'), value: getName(getValues('merchantInfo')) || '', warningMessage: error && t(error), onClick: !!anchorEl ? function () { return onCloseMerchantSelect(); } : onOpenMerchantSelect, endAdornment: _jsx(EndAdornmentExpanded, { anchorEl: anchorEl, isVerified: isVerified }) }), _jsx(Collapse, __assign({ in: !!anchorEl }, { children: _jsx(SimpleList, { list: list || [], onSelectItem: onSelectItem, renderItem: function (item) {
61
+ return (_jsxs(_Fragment, { children: [_jsx(MerchantContainer, { children: _jsx(MerchantNameText, __assign({ isSelected: item.id === (merchantValue === null || merchantValue === void 0 ? void 0 : merchantValue.id) }, { children: getName(item) })) }), item.id === (merchantValue === null || merchantValue === void 0 ? void 0 : merchantValue.id) && _jsx(CheckIcon, { isVerified: isVerified })] }));
62
+ } }) }))] })));
63
+ });
64
+ export default React.memo(MerchantList);
@@ -0,0 +1,2 @@
1
+ import AuthMerchant from './AuthMerchant';
2
+ export default AuthMerchant;
@@ -0,0 +1,2 @@
1
+ import AuthMerchant from './AuthMerchant';
2
+ export default AuthMerchant;
@@ -0,0 +1,8 @@
1
+ import * as yup from 'yup';
2
+ export declare const AuthMerchantValidationSchema: yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
3
+ merchantInfo: import("yup/lib/object").RequiredObjectSchema<import("yup/lib/object").ObjectShape, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
4
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
5
+ merchantInfo: import("yup/lib/object").RequiredObjectSchema<import("yup/lib/object").ObjectShape, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
6
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
7
+ merchantInfo: import("yup/lib/object").RequiredObjectSchema<import("yup/lib/object").ObjectShape, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
8
+ }>>>;
@@ -0,0 +1,4 @@
1
+ import * as yup from 'yup';
2
+ export var AuthMerchantValidationSchema = yup.object().shape({
3
+ merchantInfo: yup.object().required('auth_merchant_required')
4
+ });