@tap-payments/auth-jsconnect 2.1.58-test → 2.1.60-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 (46) hide show
  1. package/build/constants/app.js +24 -0
  2. package/build/features/app/bank/bankStore.d.ts +5 -1
  3. package/build/features/app/bank/bankStore.js +62 -57
  4. package/build/features/app/brand/brandStore.js +2 -0
  5. package/build/features/app/entity/entityStore.d.ts +5 -1
  6. package/build/features/app/entity/entityStore.js +75 -70
  7. package/build/features/app/individual/individualStore.d.ts +5 -1
  8. package/build/features/app/individual/individualStore.js +88 -83
  9. package/build/features/app/tax/taxStore.d.ts +5 -1
  10. package/build/features/app/tax/taxStore.js +51 -46
  11. package/build/features/bank/Bank.js +31 -24
  12. package/build/features/bank/screens/PrepareDataLoading/PrepareDataLoading.d.ts +4 -0
  13. package/build/features/bank/screens/PrepareDataLoading/PrepareDataLoading.js +7 -0
  14. package/build/features/bank/screens/PrepareDataLoading/index.d.ts +2 -0
  15. package/build/features/bank/screens/PrepareDataLoading/index.js +2 -0
  16. package/build/features/bank/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -99
  17. package/build/features/brand/Brand.js +12 -21
  18. package/build/features/business/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -98
  19. package/build/features/connectExpress/screens/Mobile/Mobile.js +1 -1
  20. package/build/features/connectExpress/screens/Mobile/MobileNumber.js +6 -9
  21. package/build/features/entity/Entity.js +31 -24
  22. package/build/features/entity/screens/PrepareDataLoading/PrepareDataLoading.d.ts +4 -0
  23. package/build/features/entity/screens/PrepareDataLoading/PrepareDataLoading.js +7 -0
  24. package/build/features/entity/screens/PrepareDataLoading/index.d.ts +2 -0
  25. package/build/features/entity/screens/PrepareDataLoading/index.js +2 -0
  26. package/build/features/entity/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -99
  27. package/build/features/featuresScreens.js +20 -0
  28. package/build/features/individual/Individual.js +31 -24
  29. package/build/features/individual/screens/PrepareDataLoading/PrepareDataLoading.d.ts +4 -0
  30. package/build/features/individual/screens/PrepareDataLoading/PrepareDataLoading.js +7 -0
  31. package/build/features/individual/screens/PrepareDataLoading/index.d.ts +2 -0
  32. package/build/features/individual/screens/PrepareDataLoading/index.js +2 -0
  33. package/build/features/individual/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -99
  34. package/build/features/password/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -99
  35. package/build/features/shared/Button/FlowsButtons.js +1 -1
  36. package/build/features/tax/Tax.js +31 -24
  37. package/build/features/tax/screens/PrepareDataLoading/PrepareDataLoading.d.ts +4 -0
  38. package/build/features/tax/screens/PrepareDataLoading/PrepareDataLoading.js +7 -0
  39. package/build/features/tax/screens/PrepareDataLoading/index.d.ts +2 -0
  40. package/build/features/tax/screens/PrepareDataLoading/index.js +2 -0
  41. package/build/features/tax/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +6 -99
  42. package/build/hooks/index.d.ts +1 -0
  43. package/build/hooks/index.js +1 -0
  44. package/build/hooks/useVerifyToken.d.ts +15 -0
  45. package/build/hooks/useVerifyToken.js +25 -0
  46. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import DataLoading from '../../../shared/DataLoading';
4
+ export var PrepareDataLoading = function () {
5
+ return _jsx(DataLoading, {});
6
+ };
7
+ export default memo(PrepareDataLoading);
@@ -0,0 +1,2 @@
1
+ import PrepareDataLoading from './PrepareDataLoading';
2
+ export default PrepareDataLoading;
@@ -0,0 +1,2 @@
1
+ import PrepareDataLoading from './PrepareDataLoading';
2
+ export default PrepareDataLoading;
@@ -9,107 +9,14 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
- import { memo, useEffect, useState } from 'react';
14
- import { useTranslation } from 'react-i18next';
15
- import { styled } from '@mui/material/styles';
16
- import { FlowsButtons } from '../../../shared/Button';
17
- import { ICONS_NAMES, PASSWORD_OPERATION_TYPE } from '../../../../constants';
18
- import { useAppSelector, useLanguage } from '../../../../hooks';
19
- import { concatenateObjectValues, getResetFlowUrl, shortenBrand, shortenString, showLastFour } from '../../../../utils';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { useAppSelector } from '../../../../hooks';
20
15
  import { entitySelector } from '../../../app/entity/entityStore';
21
- import Box from '@mui/material/Box';
22
- import Text from '../../../../components/Text';
23
- import Container from '../../../shared/Containers/ScreenContainer';
24
- import AcceptancePayouts from '../../../shared/AcceptancePayouts';
25
- import { settingsSelector } from '../../../../app/settings';
26
- var TitleStyled = styled(Text)(function (_a) {
27
- var _b;
28
- var theme = _a.theme;
29
- return (__assign(__assign({}, theme.typography.body1), (_b = { fontWeight: theme.typography.fontWeightBold, color: theme.palette.text.primary, lineHeight: 1.75, paddingBottom: theme.spacing(3) }, _b[theme.breakpoints.down('sm')] = {}, _b)));
30
- });
31
- var ContainerStyled = styled(Container)(function (_a) {
32
- var theme = _a.theme;
33
- return ({
34
- justifyContent: 'space-between',
35
- minHeight: theme.spacing(30),
36
- alignItems: 'center'
37
- });
38
- });
39
- var ButtonGroupStyled = styled(Box)(function (_a) {
40
- var theme = _a.theme;
41
- return ({
42
- width: '100%',
43
- paddingTop: theme.spacing(3)
44
- });
45
- });
16
+ import SuccessFlowButtons from '../../../shared/SuccessFlowButtons';
46
17
  var SuccessWithFlowButtons = function () {
47
- var _a, _b, _c, _d, _e, _f;
48
- var t = useTranslation().t;
49
- var isAr = useLanguage().isAr;
50
18
  var data = useAppSelector(entitySelector).data;
51
- var _g = data.verify.responseBody || {}, flows = _g.flows, entity = _g.entity, brand = _g.brand, bank = _g.bank, merchant = _g.merchant, vatID = _g.vatID, user = _g.user, business = _g.business;
52
- var _h = useState([]), buttons = _h[0], setButtons = _h[1];
53
- var _j = (user === null || user === void 0 ? void 0 : user.names) || {}, en = _j.en, ar = _j.ar;
54
- var username = isAr ? concatenateObjectValues(ar, ['first', 'last']) : concatenateObjectValues(en, ['first', 'last']);
55
- var licenseNumber = ((_a = entity === null || entity === void 0 ? void 0 : entity.license) === null || _a === void 0 ? void 0 : _a.number) || '';
56
- var bankName = shortenString(bank === null || bank === void 0 ? void 0 : bank.bank_name, 20) || t('bank');
57
- var iban = showLastFour((bank === null || bank === void 0 ? void 0 : bank.iban) || '');
58
- var taxID = (entity === null || entity === void 0 ? void 0 : entity.vat_id) || '';
59
- var brandName = (isAr ? (_b = brand === null || brand === void 0 ? void 0 : brand.name) === null || _b === void 0 ? void 0 : _b.ar : (_c = brand === null || brand === void 0 ? void 0 : brand.name) === null || _c === void 0 ? void 0 : _c.en) || '';
60
- var entityLegalName = shortenString(isAr ? (_d = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _d === void 0 ? void 0 : _d.ar : (_e = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _e === void 0 ? void 0 : _e.en, 20) || '';
61
- var isAcceptance = merchant === null || merchant === void 0 ? void 0 : merchant.is_acceptance_allowed;
62
- var isPayout = merchant === null || merchant === void 0 ? void 0 : merchant.is_payout_allowed;
63
- var identification = (user || {}).identification;
64
- var maskedId = (identification === null || identification === void 0 ? void 0 : identification.id) ? " ".concat(t('masking_symbols')).concat((_f = identification === null || identification === void 0 ? void 0 : identification.id) === null || _f === void 0 ? void 0 : _f.slice(-2)) : '';
65
- var settings = useAppSelector(settingsSelector);
66
- var _k = data.verify.responseBody || { contact: {}, board_id: '' }, board_id = _k.board_id, board_info_id = _k.board_info_id;
67
- var contact = business === null || business === void 0 ? void 0 : business.primary_contact;
68
- var email = (contact || { email: '' }).email;
69
- var url = getResetFlowUrl('/password', settings.data.language, PASSWORD_OPERATION_TYPE.RESET_PASSWORD, board_id, board_info_id);
70
- var reMapFlowData = function (flows) {
71
- if (flows === void 0) { flows = []; }
72
- var images = ICONS_NAMES;
73
- var mappedFlows = flows
74
- .filter(function (item) { return item.name; })
75
- .map(function (_a) {
76
- var name = _a.name, url = _a.url, status = _a.status;
77
- var type = status === 'initiated' || status === 'in_progress' ? 'pending' : 'completed';
78
- var title = t("".concat(name, "_flow_").concat(type), {
79
- individual_name: username.toLowerCase() + maskedId,
80
- business_type: entityLegalName,
81
- brand: brandName,
82
- license_number: licenseNumber ? t('masking_symbols') + showLastFour(licenseNumber) : '',
83
- bank_name: bankName,
84
- iban: iban ? t('masking_symbols') + iban : '',
85
- tax_id: taxID ? t('masking_symbols') + showLastFour(taxID) : ''
86
- });
87
- var isCompleted = status === 'completed' && name !== 'password';
88
- var isIndividual = name === 'individual';
89
- var src = isCompleted ? "".concat(name, "_green_icon") : "".concat(name, "_filled_icon");
90
- var hoverSrc = "".concat(name, "_white_icon");
91
- return {
92
- name: name,
93
- status: status,
94
- title: title,
95
- href: url,
96
- src: images[src],
97
- hoverSrc: images[hoverSrc],
98
- isCompleted: isCompleted,
99
- sx: isIndividual ? { textTransform: 'capitalize' } : {}
100
- };
101
- });
102
- setButtons(mappedFlows);
103
- };
104
- useEffect(function () {
105
- if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0)
106
- reMapFlowData(flows);
107
- }, [flows, isAr]);
108
- return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons, data: {
109
- flowName: data.flowName,
110
- email: email,
111
- emailUrl: url,
112
- brandName: shortenBrand(brandName)
113
- } }) })] }));
19
+ var _a = data.verify.responseBody || {}, flows = _a.flows, entity = _a.entity, brand = _a.brand, bank = _a.bank_account, merchant = _a.merchant, user = _a.user, business = _a.business, board_id = _a.board_id, board_info_id = _a.board_info_id, name = _a.name;
20
+ return (_jsx(SuccessFlowButtons, { flowName: data.flowName, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, flows: flows || [] }));
114
21
  };
115
22
  export default memo(SuccessWithFlowButtons);
@@ -42,16 +42,19 @@ import AdditionalIndividualInfoPage from './individual/screens/AdditionalIndivid
42
42
  import SuccessOwnerPage from './individual/screens/Success';
43
43
  import IndividualSuccessWithFlowPage from './individual/screens/SuccessWithFlowButtons';
44
44
  import IndividualResetPasswordSuccessPage from './individual/screens/ResetPasswordSuccess';
45
+ import IndividualDataLoadingPage from './individual/screens/PrepareDataLoading';
45
46
  import BankVerifyPage from './bank/screens/Verify';
46
47
  import BankDetailsPage from './bank/screens/BankDetails';
47
48
  import BankSuccessPage from './bank/screens/Success';
48
49
  import BankSuccessWithFlowPage from './bank/screens/SuccessWithFlowButtons';
49
50
  import BankResetPasswordSuccessPage from './bank/screens/ResetPasswordSuccess';
51
+ import BankDataLoadingPage from './bank/screens/PrepareDataLoading';
50
52
  import TaxVerifyPage from './tax/screens/Verify';
51
53
  import TaxDetailsPage from './tax/screens/TaxDetails';
52
54
  import TaxSuccessPage from './tax/screens/Success';
53
55
  import TaxSuccessWithFlowPage from './tax/screens/SuccessWithFlowButtons';
54
56
  import TaxResetPasswordSuccessPage from './tax/screens/ResetPasswordSuccess';
57
+ import TaxDataLoadingPage from './tax/screens/PrepareDataLoading';
55
58
  import SignInMobilePage from './signIn/screens/Mobile';
56
59
  import SignInEmailPage from './signIn/screens/Email';
57
60
  import SignInOTPPage from './signIn/screens/OTP';
@@ -62,6 +65,7 @@ import EntityCapitalPage from './entity/screens/EntityCapital';
62
65
  import EntitySuccessPage from './entity/screens/Success';
63
66
  import EntitySuccessWithFlowPage from './entity/screens/SuccessWithFlowButtons';
64
67
  import EntityResetPasswordSuccessPage from './entity/screens/ResetPasswordSuccess';
68
+ import EntityDataLoadingPage from './entity/screens/PrepareDataLoading';
65
69
  import BrandVerifyPage from './brand/screens/Verify';
66
70
  import BrandInfoPage from './brand/screens/BrandInfo';
67
71
  import BrandActivitiesPage from './brand/screens/BrandActivities';
@@ -228,6 +232,10 @@ export var individualFeatureScreens = [
228
232
  name: 'INDIVIDUAL_VERIFY_STEP',
229
233
  element: IndividualVerifyPage
230
234
  },
235
+ {
236
+ name: 'INDIVIDUAL_LOADING_DATA_STEP',
237
+ element: IndividualDataLoadingPage
238
+ },
231
239
  {
232
240
  name: 'INDIVIDUAL_ADDITIONAL_INDIVIDUAL_INFO_STEP',
233
241
  element: AdditionalIndividualInfoPage
@@ -247,6 +255,10 @@ export var bankFeatureScreens = [
247
255
  name: 'BANK_VERIFY_STEP',
248
256
  element: BankVerifyPage
249
257
  },
258
+ {
259
+ name: 'BANK_LOADING_DATA_STEP',
260
+ element: BankDataLoadingPage
261
+ },
250
262
  {
251
263
  name: 'BANK_BANK_DETAILS_STEP',
252
264
  element: BankDetailsPage
@@ -266,6 +278,10 @@ export var taxFeatureScreens = [
266
278
  name: 'TAX_VERIFY_STEP',
267
279
  element: TaxVerifyPage
268
280
  },
281
+ {
282
+ name: 'TAX_LOADING_DATA_STEP',
283
+ element: TaxDataLoadingPage
284
+ },
269
285
  {
270
286
  name: 'TAX_TAX_DETAILS_STEP',
271
287
  element: TaxDetailsPage
@@ -303,6 +319,10 @@ export var entityFeatureScreens = [
303
319
  name: 'ENTITY_VERIFY_STEP',
304
320
  element: EntityVerifyPage
305
321
  },
322
+ {
323
+ name: 'ENTITY_LOADING_DATA_STEP',
324
+ element: EntityDataLoadingPage
325
+ },
306
326
  {
307
327
  name: 'ENTITY_NAME_STEP',
308
328
  element: EntityNamePage
@@ -9,44 +9,51 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
12
23
  import { jsx as _jsx } from "react/jsx-runtime";
13
- import { memo, useEffect } from 'react';
14
- import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener } from '../../hooks';
15
- import { handleLanguage, settingsSelector } from '../../app/settings';
24
+ import { memo } from 'react';
25
+ import { useAppTheme, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener, useVerifyToken } from '../../hooks';
26
+ import { settingsSelector } from '../../app/settings';
16
27
  import AnimationFlow from '../../components/AnimationFlow';
17
28
  import { store } from '../../app/store';
18
29
  import { ReduxProvider, ThemeProvider } from '../../components/Providers';
19
30
  import Collapse from '../../components/Collapse';
20
- import { getParameterByName, reactElement } from '../../utils';
31
+ import { reactElement } from '../../utils';
21
32
  import { FeatureContainer } from '../shared/Containers';
22
33
  import { INDIVIDUAL_SCREENS_NAVIGATION } from '../../constants';
23
34
  import { individualFeatureScreens } from '../featuresScreens';
24
35
  import { individualSelector, verifyLeadToken } from '../app/individual/individualStore';
25
36
  import CustomFooter from '../shared/Footer';
26
37
  import Background from '../shared/Background';
27
- var Individual = memo(function (props) {
38
+ var Individual = memo(function (_a) {
39
+ var verifyToken = _a.verifyToken, props = __rest(_a, ["verifyToken"]);
28
40
  var theme = useAppTheme().theme;
29
- var dispatch = useAppDispatch();
30
- var _a = useAppSelector(settingsSelector), data = _a.data, error = _a.error, settingLoading = _a.loading;
31
- var _b = useAppSelector(individualSelector), customLoading = _b.customLoading, individualError = _b.error, loading = _b.loading;
32
- useAppConfig(__assign({ navigation: INDIVIDUAL_SCREENS_NAVIGATION }, props));
41
+ var _b = useAppSelector(settingsSelector), data = _b.data, error = _b.error, settingLoading = _b.loading;
42
+ var _c = useAppSelector(individualSelector), customLoading = _c.customLoading, individualError = _c.error, loading = _c.loading;
43
+ useAppConfig(__assign(__assign({ navigation: INDIVIDUAL_SCREENS_NAVIGATION }, props), { disableSettingFetching: !!verifyToken }));
33
44
  useErrorListener(individualError || error);
34
45
  useStepStartedListener();
35
- var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open;
36
- var verifyToken = function () {
37
- var token = getParameterByName('token');
38
- var lang = getParameterByName('lang');
39
- if (lang)
40
- dispatch(handleLanguage(lang));
41
- if (!token)
42
- throw new Error('Auth token is not found!');
43
- dispatch(verifyLeadToken(token));
44
- };
45
- useEffect(function () {
46
- if (!settingLoading && open)
47
- verifyToken();
48
- }, [settingLoading]);
49
- return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', isTapOrigin: isTapOrigin, loading: settingLoading || customLoading, error: error, open: open, breakpoint: 'sm', footer: _jsx(CustomFooter, {}), screenId: activeScreen.name }, { children: _jsx(FeatureContainer, { children: individualFeatureScreens.map(function (_a, index) {
46
+ var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open, featureScreensNavigation = data.featureScreensNavigation;
47
+ useVerifyToken({
48
+ verify: verifyLeadToken,
49
+ loadingScreenName: 'INDIVIDUAL_LOADING_DATA_STEP',
50
+ navigation: featureScreensNavigation,
51
+ open: open,
52
+ internalToken: verifyToken,
53
+ settingLoading: settingLoading
54
+ });
55
+ var initialLoading = verifyToken ? settingLoading : settingLoading || customLoading;
56
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: initialLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', isTapOrigin: isTapOrigin, loading: initialLoading, error: error, open: open, breakpoint: 'sm', footer: _jsx(CustomFooter, {}), screenId: activeScreen.name }, { children: _jsx(FeatureContainer, { children: individualFeatureScreens.map(function (_a, index) {
50
57
  var Element = _a.element, name = _a.name;
51
58
  var isActive = activeScreen.name === name;
52
59
  return (_jsx(Collapse, __assign({ in: isActive, timeout: { enter: 1000, exit: 800 } }, { children: _jsx(Element, {}) }), index));
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const PrepareDataLoading: () => JSX.Element;
3
+ declare const _default: React.MemoExoticComponent<() => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import DataLoading from '../../../shared/DataLoading';
4
+ export var PrepareDataLoading = function () {
5
+ return _jsx(DataLoading, {});
6
+ };
7
+ export default memo(PrepareDataLoading);
@@ -0,0 +1,2 @@
1
+ import PrepareDataLoading from './PrepareDataLoading';
2
+ export default PrepareDataLoading;
@@ -0,0 +1,2 @@
1
+ import PrepareDataLoading from './PrepareDataLoading';
2
+ export default PrepareDataLoading;
@@ -9,107 +9,14 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
- import { memo, useEffect, useState } from 'react';
14
- import { useTranslation } from 'react-i18next';
15
- import { styled } from '@mui/material/styles';
16
- import { FlowsButtons } from '../../../shared/Button';
17
- import { ICONS_NAMES, PASSWORD_OPERATION_TYPE } from '../../../../constants';
18
- import { useAppSelector, useLanguage } from '../../../../hooks';
19
- import { concatenateObjectValues, getResetFlowUrl, shortenBrand, shortenString, showLastFour } from '../../../../utils';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { useAppSelector } from '../../../../hooks';
20
15
  import { individualSelector } from '../../../app/individual/individualStore';
21
- import Box from '@mui/material/Box';
22
- import Text from '../../../../components/Text';
23
- import Container from '../../../shared/Containers/ScreenContainer';
24
- import AcceptancePayouts from '../../../shared/AcceptancePayouts';
25
- import { settingsSelector } from '../../../../app/settings';
26
- var TitleStyled = styled(Text)(function (_a) {
27
- var _b;
28
- var theme = _a.theme;
29
- return (__assign(__assign({}, theme.typography.body1), (_b = { fontWeight: theme.typography.fontWeightBold, color: theme.palette.text.primary, lineHeight: 1.75, paddingBottom: theme.spacing(3) }, _b[theme.breakpoints.down('sm')] = {}, _b)));
30
- });
31
- var ContainerStyled = styled(Container)(function (_a) {
32
- var theme = _a.theme;
33
- return ({
34
- justifyContent: 'space-between',
35
- minHeight: theme.spacing(30),
36
- alignItems: 'center'
37
- });
38
- });
39
- var ButtonGroupStyled = styled(Box)(function (_a) {
40
- var theme = _a.theme;
41
- return ({
42
- width: '100%',
43
- paddingTop: theme.spacing(3)
44
- });
45
- });
16
+ import SuccessFlowButtons from '../../../shared/SuccessFlowButtons';
46
17
  var SuccessWithFlowButtons = function () {
47
- var _a, _b, _c, _d, _e, _f;
48
- var t = useTranslation().t;
49
- var isAr = useLanguage().isAr;
50
18
  var data = useAppSelector(individualSelector).data;
51
- var _g = data.verify.responseBody || {}, flows = _g.flows, nameObj = _g.name, entity = _g.entity, brand = _g.brand, bank = _g.bank_account, merchant = _g.merchant, user = _g.user, business = _g.business;
52
- var _h = useState([]), buttons = _h[0], setButtons = _h[1];
53
- var _j = nameObj || {}, en = _j.en, ar = _j.ar;
54
- var username = isAr ? concatenateObjectValues(ar || en, ['first', 'last']) : concatenateObjectValues(en, ['first', 'last']);
55
- var licenseNumber = ((_a = entity === null || entity === void 0 ? void 0 : entity.license) === null || _a === void 0 ? void 0 : _a.number) || '';
56
- var bankName = shortenString(bank === null || bank === void 0 ? void 0 : bank.bank_name, 20) || t('bank');
57
- var iban = showLastFour((bank === null || bank === void 0 ? void 0 : bank.iban) || '');
58
- var taxID = (entity === null || entity === void 0 ? void 0 : entity.vat_id) || '';
59
- var brandName = (isAr ? (_b = brand === null || brand === void 0 ? void 0 : brand.name) === null || _b === void 0 ? void 0 : _b.ar : (_c = brand === null || brand === void 0 ? void 0 : brand.name) === null || _c === void 0 ? void 0 : _c.en) || '';
60
- var entityLegalName = shortenString(isAr ? (_d = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _d === void 0 ? void 0 : _d.ar : (_e = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _e === void 0 ? void 0 : _e.en, 20) || '';
61
- var isAcceptance = merchant === null || merchant === void 0 ? void 0 : merchant.is_acceptance_allowed;
62
- var isPayout = merchant === null || merchant === void 0 ? void 0 : merchant.is_payout_allowed;
63
- var identification = (user || {}).identification;
64
- var maskedId = (identification === null || identification === void 0 ? void 0 : identification.id) ? " ".concat(t('masking_symbols')).concat((_f = identification === null || identification === void 0 ? void 0 : identification.id) === null || _f === void 0 ? void 0 : _f.slice(-2)) : '';
65
- var settings = useAppSelector(settingsSelector);
66
- var _k = data.verify.responseBody || { contact: {}, board_id: '' }, board_id = _k.board_id, board_info_id = _k.board_info_id;
67
- var contact = business === null || business === void 0 ? void 0 : business.primary_contact;
68
- var email = (contact || { email: '' }).email;
69
- var url = getResetFlowUrl('/password', settings.data.language, PASSWORD_OPERATION_TYPE.RESET_PASSWORD, board_id, board_info_id);
70
- var reMapFlowData = function (flows) {
71
- if (flows === void 0) { flows = []; }
72
- var images = ICONS_NAMES;
73
- var mappedFlows = flows
74
- .filter(function (item) { return item === null || item === void 0 ? void 0 : item.name; })
75
- .map(function (_a) {
76
- var name = _a.name, url = _a.url, status = _a.status;
77
- var type = status === 'completed' ? 'completed' : 'pending';
78
- var title = t("".concat(name, "_flow_").concat(type), {
79
- individual_name: username.toLowerCase() + maskedId,
80
- business_type: entityLegalName,
81
- brand: brandName,
82
- license_number: licenseNumber ? t('masking_symbols') + showLastFour(licenseNumber) : '',
83
- bank_name: bankName,
84
- iban: iban ? t('masking_symbols') + iban : '',
85
- tax_id: taxID ? t('masking_symbols') + showLastFour(taxID) : ''
86
- });
87
- var isCompleted = status === 'completed' && name !== 'password';
88
- var isIndividual = name === 'individual';
89
- var src = isCompleted ? "".concat(name, "_green_icon") : "".concat(name, "_filled_icon");
90
- var hoverSrc = "".concat(name, "_white_icon");
91
- return {
92
- name: name,
93
- status: status,
94
- title: title,
95
- href: url,
96
- src: images[src],
97
- hoverSrc: images[hoverSrc],
98
- isCompleted: isCompleted,
99
- sx: isIndividual ? { textTransform: 'capitalize' } : {}
100
- };
101
- });
102
- setButtons(mappedFlows);
103
- };
104
- useEffect(function () {
105
- if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0)
106
- reMapFlowData(flows);
107
- }, [flows, isAr]);
108
- return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons, data: {
109
- flowName: data.flowName,
110
- email: email,
111
- emailUrl: url,
112
- brandName: shortenBrand(brandName)
113
- } }) })] }));
19
+ var _a = data.verify.responseBody || {}, flows = _a.flows, entity = _a.entity, brand = _a.brand, bank = _a.bank_account, merchant = _a.merchant, user = _a.user, business = _a.business, board_id = _a.board_id, board_info_id = _a.board_info_id, name = _a.name;
20
+ return (_jsx(SuccessFlowButtons, { flowName: data.flowName, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, flows: flows || [] }));
114
21
  };
115
22
  export default memo(SuccessWithFlowButtons);
@@ -9,107 +9,14 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
- import { memo, useEffect, useState } from 'react';
14
- import { useTranslation } from 'react-i18next';
15
- import { styled } from '@mui/material/styles';
16
- import { FlowsButtons } from '../../../shared/Button';
17
- import { ICONS_NAMES, PASSWORD_OPERATION_TYPE } from '../../../../constants';
18
- import { useAppSelector, useLanguage } from '../../../../hooks';
19
- import { getResetFlowUrl, showLastFour, concatenateObjectValues, shortenString, shortenBrand } from '../../../../utils';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { useAppSelector } from '../../../../hooks';
20
15
  import { passwordSelector } from '../../../app/password/passwordStore';
21
- import Box from '@mui/material/Box';
22
- import Text from '../../../../components/Text';
23
- import Container from '../../../shared/Containers/ScreenContainer';
24
- import AcceptancePayouts from '../../../shared/AcceptancePayouts';
25
- import { settingsSelector } from '../../../../app/settings';
26
- var TitleStyled = styled(Text)(function (_a) {
27
- var _b;
28
- var theme = _a.theme;
29
- return (__assign(__assign({}, theme.typography.body1), (_b = { fontWeight: theme.typography.fontWeightBold, color: theme.palette.text.primary, lineHeight: 1.75, paddingBottom: theme.spacing(3) }, _b[theme.breakpoints.down('sm')] = {}, _b)));
30
- });
31
- var ContainerStyled = styled(Container)(function (_a) {
32
- var theme = _a.theme;
33
- return ({
34
- justifyContent: 'space-between',
35
- minHeight: theme.spacing(30),
36
- alignItems: 'center'
37
- });
38
- });
39
- var ButtonGroupStyled = styled(Box)(function (_a) {
40
- var theme = _a.theme;
41
- return ({
42
- width: '100%',
43
- paddingTop: theme.spacing(3)
44
- });
45
- });
16
+ import SuccessFlowButtons from '../../../shared/SuccessFlowButtons';
46
17
  var SuccessWithFlowButtons = function () {
47
- var _a, _b, _c, _d, _e, _f;
48
- var t = useTranslation().t;
49
- var isAr = useLanguage().isAr;
50
18
  var data = useAppSelector(passwordSelector).data;
51
- var _g = data.verify.responseBody || {}, flows = _g.flows, nameObj = _g.name, entity = _g.entity, brand = _g.brand, bank = _g.bank_account, merchant = _g.merchant, user = _g.user, business = _g.business;
52
- var _h = useState([]), buttons = _h[0], setButtons = _h[1];
53
- var _j = nameObj || {}, en = _j.en, ar = _j.ar;
54
- var username = isAr ? concatenateObjectValues(ar || en, ['first', 'last']) : concatenateObjectValues(en, ['first', 'last']);
55
- var licenseNumber = ((_a = entity === null || entity === void 0 ? void 0 : entity.license) === null || _a === void 0 ? void 0 : _a.number) || '';
56
- var bankName = shortenString(bank === null || bank === void 0 ? void 0 : bank.bank_name, 20) || t('bank');
57
- var iban = showLastFour((bank === null || bank === void 0 ? void 0 : bank.iban) || '');
58
- var taxID = (entity === null || entity === void 0 ? void 0 : entity.vat_id) || '';
59
- var brandName = (isAr ? (_b = brand === null || brand === void 0 ? void 0 : brand.name) === null || _b === void 0 ? void 0 : _b.ar : (_c = brand === null || brand === void 0 ? void 0 : brand.name) === null || _c === void 0 ? void 0 : _c.en) || '';
60
- var entityLegalName = shortenString(isAr ? (_d = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _d === void 0 ? void 0 : _d.ar : (_e = entity === null || entity === void 0 ? void 0 : entity.legal_name) === null || _e === void 0 ? void 0 : _e.en, 20) || '';
61
- var isAcceptance = merchant === null || merchant === void 0 ? void 0 : merchant.is_acceptance_allowed;
62
- var isPayout = merchant === null || merchant === void 0 ? void 0 : merchant.is_payout_allowed;
63
- var identification = user.identification;
64
- var maskedId = (identification === null || identification === void 0 ? void 0 : identification.id) ? " ".concat(t('masking_symbols')).concat((_f = identification === null || identification === void 0 ? void 0 : identification.id) === null || _f === void 0 ? void 0 : _f.slice(-2)) : '';
65
- var settings = useAppSelector(settingsSelector);
66
- var _k = data.verify.responseBody || { contact: {}, board_id: '' }, board_id = _k.board_id, board_info_id = _k.board_info_id;
67
- var contact = business === null || business === void 0 ? void 0 : business.primary_contact;
68
- var email = (contact || { email: '' }).email;
69
- var url = getResetFlowUrl('/password', settings.data.language, PASSWORD_OPERATION_TYPE.RESET_PASSWORD, board_id, board_info_id);
70
- var reMapFlowData = function (flows) {
71
- if (flows === void 0) { flows = []; }
72
- var images = ICONS_NAMES;
73
- var mappedFlows = flows
74
- .filter(function (item) { return item === null || item === void 0 ? void 0 : item.name; })
75
- .map(function (_a) {
76
- var name = _a.name, url = _a.url, status = _a.status;
77
- var type = status === 'completed' ? 'completed' : 'pending';
78
- var title = t("".concat(name, "_flow_").concat(type), {
79
- individual_name: username.toLowerCase() + maskedId,
80
- business_type: entityLegalName,
81
- brand: brandName,
82
- license_number: licenseNumber ? t('masking_symbols') + showLastFour(licenseNumber) : '',
83
- bank_name: bankName,
84
- iban: iban ? t('masking_symbols') + iban : '',
85
- tax_id: taxID ? t('masking_symbols') + showLastFour(taxID) : ''
86
- });
87
- var isCompleted = status === 'completed' && name !== 'password';
88
- var isIndividual = name === 'individual';
89
- var src = isCompleted ? "".concat(name, "_green_icon") : "".concat(name, "_filled_icon");
90
- var hoverSrc = "".concat(name, "_white_icon");
91
- return {
92
- name: name,
93
- status: status,
94
- title: title,
95
- href: url,
96
- src: images[src],
97
- hoverSrc: images[hoverSrc],
98
- isCompleted: isCompleted,
99
- sx: isIndividual ? { textTransform: 'capitalize' } : {}
100
- };
101
- });
102
- setButtons(mappedFlows);
103
- };
104
- useEffect(function () {
105
- if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0)
106
- reMapFlowData(flows);
107
- }, [flows, isAr]);
108
- return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons, data: {
109
- flowName: data.flowName,
110
- email: email,
111
- emailUrl: url,
112
- brandName: shortenBrand(brandName)
113
- } }) })] }));
19
+ var _a = data.verify.responseBody || {}, flows = _a.flows, entity = _a.entity, brand = _a.brand, bank = _a.bank_account, merchant = _a.merchant, user = _a.user, business = _a.business, board_id = _a.board_id, board_info_id = _a.board_info_id, name = _a.name;
20
+ return (_jsx(SuccessFlowButtons, { flowName: data.flowName, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, flows: flows || [] }));
114
21
  };
115
22
  export default memo(SuccessWithFlowButtons);
@@ -157,11 +157,11 @@ export default function FlowsButtons(_a) {
157
157
  dispatch(handleCurrentActiveScreen(getScreenNameBasedOnFlow(item.name)));
158
158
  return;
159
159
  }
160
- dispatch(handleOpen(false));
161
160
  if (typeof settingsData.appConfig.onFlowButtonClick === 'function') {
162
161
  settingsData.appConfig.onFlowButtonClick(item);
163
162
  return;
164
163
  }
164
+ dispatch(handleOpen(false));
165
165
  setTimeout(function () {
166
166
  window.location.href = item.href;
167
167
  }, 500);
@@ -9,44 +9,51 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
12
23
  import { jsx as _jsx } from "react/jsx-runtime";
13
- import { memo, useEffect } from 'react';
14
- import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener } from '../../hooks';
15
- import { handleLanguage, settingsSelector } from '../../app/settings';
24
+ import { memo } from 'react';
25
+ import { useAppTheme, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener, useVerifyToken } from '../../hooks';
26
+ import { settingsSelector } from '../../app/settings';
16
27
  import AnimationFlow from '../../components/AnimationFlow';
17
28
  import { store } from '../../app/store';
18
29
  import { ReduxProvider, ThemeProvider } from '../../components/Providers';
19
30
  import Collapse from '../../components/Collapse';
20
- import { getParameterByName, reactElement } from '../../utils';
31
+ import { reactElement } from '../../utils';
21
32
  import { FeatureContainer } from '../shared/Containers';
22
33
  import { TAX_SCREENS_NAVIGATION } from '../../constants';
23
34
  import { taxFeatureScreens } from '../featuresScreens';
24
35
  import CustomFooter from '../shared/Footer';
25
36
  import { taxSelector, verifyLeadToken } from '../app/tax/taxStore';
26
37
  import Background from '../shared/Background';
27
- var Tax = memo(function (props) {
38
+ var Tax = memo(function (_a) {
39
+ var verifyToken = _a.verifyToken, props = __rest(_a, ["verifyToken"]);
28
40
  var theme = useAppTheme().theme;
29
- var dispatch = useAppDispatch();
30
- var _a = useAppSelector(settingsSelector), data = _a.data, error = _a.error, settingLoading = _a.loading;
31
- var _b = useAppSelector(taxSelector), customLoading = _b.customLoading, taxError = _b.error, loading = _b.loading;
32
- useAppConfig(__assign({ navigation: TAX_SCREENS_NAVIGATION }, props));
41
+ var _b = useAppSelector(settingsSelector), data = _b.data, error = _b.error, settingLoading = _b.loading;
42
+ var _c = useAppSelector(taxSelector), customLoading = _c.customLoading, taxError = _c.error, loading = _c.loading;
43
+ useAppConfig(__assign(__assign({ navigation: TAX_SCREENS_NAVIGATION }, props), { disableSettingFetching: !!verifyToken }));
33
44
  useErrorListener(taxError || error);
34
45
  useStepStartedListener();
35
- var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open;
36
- var verifyToken = function () {
37
- var token = getParameterByName('token');
38
- var lang = getParameterByName('lang');
39
- if (lang)
40
- dispatch(handleLanguage(lang));
41
- if (!token)
42
- throw new Error('Auth token is not found!');
43
- dispatch(verifyLeadToken(token));
44
- };
45
- useEffect(function () {
46
- if (!settingLoading && open)
47
- verifyToken();
48
- }, [settingLoading]);
49
- return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', isTapOrigin: isTapOrigin, open: open, error: error, loading: settingLoading || customLoading, breakpoint: 'sm', footer: _jsx(CustomFooter, {}), screenId: activeScreen.name }, { children: _jsx(FeatureContainer, { children: taxFeatureScreens.map(function (_a, index) {
46
+ var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open, featureScreensNavigation = data.featureScreensNavigation;
47
+ useVerifyToken({
48
+ verify: verifyLeadToken,
49
+ loadingScreenName: 'TAX_LOADING_DATA_STEP',
50
+ navigation: featureScreensNavigation,
51
+ open: open,
52
+ internalToken: verifyToken,
53
+ settingLoading: settingLoading
54
+ });
55
+ var initialLoading = verifyToken ? settingLoading : settingLoading || customLoading;
56
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: initialLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', isTapOrigin: isTapOrigin, open: open, error: error, loading: initialLoading, breakpoint: 'sm', footer: _jsx(CustomFooter, {}), screenId: activeScreen.name }, { children: _jsx(FeatureContainer, { children: taxFeatureScreens.map(function (_a, index) {
50
57
  var Element = _a.element, name = _a.name;
51
58
  var isActive = activeScreen.name === name;
52
59
  return (_jsx(Collapse, __assign({ in: isActive, timeout: { enter: 1000, exit: 800 } }, { children: _jsx(Element, {}) }), index));