@tap-payments/auth-jsconnect 2.8.55-beta → 2.8.55-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.
- package/build/@types/app.d.ts +1 -0
- package/build/@types/form.d.ts +1 -0
- package/build/@types/redux.d.ts +1 -0
- package/build/api/entity.d.ts +2 -2
- package/build/api/entity.js +12 -4
- package/build/api/index.d.ts +2 -2
- package/build/constants/api.d.ts +0 -1
- package/build/constants/api.js +0 -2
- package/build/constants/app.d.ts +0 -2
- package/build/constants/app.js +0 -2
- package/build/features/app/bank/bankStore.d.ts +13 -18
- package/build/features/app/bank/bankStore.js +184 -165
- package/build/features/app/board/boardStore.js +52 -30
- package/build/features/app/brand/brandStore.d.ts +16 -33
- package/build/features/app/brand/brandStore.js +239 -242
- package/build/features/app/business/businessStore.d.ts +0 -5
- package/build/features/app/business/businessStore.js +76 -87
- package/build/features/app/connectExpress/connectExpressStore.d.ts +15 -6
- package/build/features/app/connectExpress/connectExpressStore.js +110 -52
- package/build/features/app/entity/entityStore.d.ts +20 -36
- package/build/features/app/entity/entityStore.js +196 -246
- package/build/features/app/individual/individualStore.d.ts +22 -38
- package/build/features/app/individual/individualStore.js +263 -266
- package/build/features/app/password/passwordStore.d.ts +40 -23
- package/build/features/app/password/passwordStore.js +226 -233
- package/build/features/app/tax/taxStore.d.ts +13 -7
- package/build/features/app/tax/taxStore.js +168 -147
- package/build/features/auth/screens/AuthSwitch/AuthSwitch.js +13 -1
- package/build/features/auth/screens/BusinessCountry/BusinessCountry.js +7 -1
- package/build/features/bank/Bank.d.ts +1 -0
- package/build/features/bank/Bank.js +7 -4
- package/build/features/bank/screens/BankDetails/BankDetails.js +18 -5
- package/build/features/bank/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/bank/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/bank/screens/OperatorError/index.d.ts +3 -0
- package/build/features/bank/screens/OperatorError/index.js +2 -0
- package/build/features/bank/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/bank/screens/Verify/Verify.js +5 -5
- package/build/features/board/Board.js +8 -4
- package/build/features/board/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/board/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/board/screens/OperatorError/index.d.ts +3 -0
- package/build/features/board/screens/OperatorError/index.js +2 -0
- package/build/features/board/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +3 -4
- package/build/features/brand/Brand.d.ts +1 -0
- package/build/features/brand/Brand.js +7 -4
- package/build/features/brand/screens/BrandActivities/BrandActivities.js +49 -12
- package/build/features/brand/screens/BrandActivities/ExpectedSalesRange.js +6 -3
- package/build/features/brand/screens/BrandActivities/RefundPolicy.js +1 -1
- package/build/features/brand/screens/BrandActivities/TAC.js +1 -1
- package/build/features/brand/screens/BrandActivities/TransactionPolicy.js +1 -1
- package/build/features/brand/screens/BrandInfo/BrandInfo.js +23 -5
- package/build/features/brand/screens/BrandSegmentInfo/BrandSegmentInfo.js +23 -7
- package/build/features/brand/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/brand/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/brand/screens/OperatorError/index.d.ts +3 -0
- package/build/features/brand/screens/OperatorError/index.js +2 -0
- package/build/features/brand/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/brand/screens/Verify/Verify.js +1 -1
- package/build/features/business/Business.js +9 -4
- package/build/features/business/screens/Activities/Activities.js +12 -3
- package/build/features/business/screens/BusinessType/BusinessType.js +10 -2
- package/build/features/business/screens/CivilID/CivilID.js +1 -1
- package/build/features/business/screens/Customers/Customers.js +12 -3
- package/build/features/business/screens/Customers/ExpectedSalesRange.js +6 -3
- package/build/features/business/screens/IDBOD/IDBOD.js +10 -2
- package/build/features/business/screens/OTP/OTP.js +1 -1
- package/build/features/business/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/business/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/business/screens/OperatorError/index.d.ts +3 -0
- package/build/features/business/screens/OperatorError/index.js +2 -0
- package/build/features/business/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +14 -3
- package/build/features/business/screens/Verify/Verify.js +13 -3
- package/build/features/connect/Connect.js +3 -2
- package/build/features/connect/screens/BrandSegment/BrandSegment.js +1 -1
- package/build/features/connect/screens/BusinessCountry/BusinessCountry.js +9 -2
- package/build/features/connect/screens/CivilID/CivilID.js +1 -1
- package/build/features/connect/screens/Individual/Email.js +3 -1
- package/build/features/connect/screens/Individual/Individual.js +1 -1
- package/build/features/connect/screens/Merchant/BrandList.js +3 -3
- package/build/features/connect/screens/Merchant/Merchant.js +1 -1
- package/build/features/connect/screens/Merchant/SalesChannels.js +1 -1
- package/build/features/connect/screens/Mobile/Mobile.js +11 -8
- package/build/features/connect/screens/NID/NID.js +1 -1
- package/build/features/connect/screens/OperatorError/OperatorError.js +1 -1
- package/build/features/connectExpress/ConnectExpress.js +2 -1
- package/build/features/connectExpress/screens/AuthenticationList/AuthenticationList.js +5 -2
- package/build/features/connectExpress/screens/AuthenticationList/EntityLicenseType.d.ts +9 -0
- package/build/features/connectExpress/screens/AuthenticationList/EntityLicenseType.js +90 -0
- package/build/features/connectExpress/screens/AuthenticationList/EntityList.js +6 -1
- package/build/features/connectExpress/screens/AuthenticationList/validation.d.ts +3 -0
- package/build/features/connectExpress/screens/AuthenticationList/validation.js +10 -0
- package/build/features/connectExpress/screens/BusinessCountry/BusinessCountry.js +7 -1
- package/build/features/connectExpress/screens/CivilID/CivilID.js +1 -1
- package/build/features/connectExpress/screens/CivilIDMissed/CivilID.js +1 -1
- package/build/features/connectExpress/screens/CollectBusinessInfo/CollectBusinessInfo.js +1 -1
- package/build/features/connectExpress/screens/CollectIndividualInfo/CollectIndividualInfo.js +1 -1
- package/build/features/connectExpress/screens/CollectIndividualInfo/Email.js +3 -1
- package/build/features/connectExpress/screens/CreateAccountLoader/CreateAccountLoader.js +14 -24
- package/build/features/connectExpress/screens/Mobile/Mobile.js +9 -2
- package/build/features/connectExpress/screens/NID/NID.js +1 -1
- package/build/features/connectExpress/screens/NIDMissed/NID.js +1 -1
- package/build/features/connectExpress/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/connectExpress/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/connectExpress/screens/OperatorError/index.d.ts +3 -0
- package/build/features/connectExpress/screens/OperatorError/index.js +2 -0
- package/build/features/connectExpress/screens/PrepareDataLoading/PrepareDataLoading.d.ts +5 -0
- package/build/features/connectExpress/screens/PrepareDataLoading/PrepareDataLoading.js +34 -0
- package/build/features/connectExpress/screens/PrepareDataLoading/index.d.ts +2 -0
- package/build/features/connectExpress/screens/PrepareDataLoading/index.js +2 -0
- package/build/features/connectExpress/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/entity/Entity.d.ts +1 -0
- package/build/features/entity/Entity.js +7 -4
- package/build/features/entity/screens/EntityCapital/CapitalPaid.js +8 -4
- package/build/features/entity/screens/EntityCapital/CapitalShareValue.js +8 -4
- package/build/features/entity/screens/EntityCapital/EntityCapital.js +34 -10
- package/build/features/entity/screens/EntityName/EntityName.js +32 -15
- package/build/features/entity/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/entity/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/entity/screens/OperatorError/index.d.ts +3 -0
- package/build/features/entity/screens/OperatorError/index.js +2 -0
- package/build/features/entity/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/entity/screens/Verify/Verify.js +1 -1
- package/build/features/featuresScreens.js +67 -7
- package/build/features/individual/Individual.d.ts +1 -0
- package/build/features/individual/Individual.js +7 -4
- package/build/features/individual/screens/AdditionalIndividualInfo/AdditionalIndividualInfo.js +54 -14
- package/build/features/individual/screens/AdditionalIndividualInfo/IsAuthorizedSwitch.d.ts +14 -0
- package/build/features/individual/screens/AdditionalIndividualInfo/IsAuthorizedSwitch.js +76 -0
- package/build/features/individual/screens/AdditionalIndividualInfo/MonthlyIncome.js +5 -2
- package/build/features/individual/screens/AdditionalIndividualInfo/ShareValue.js +8 -3
- package/build/features/individual/screens/AdditionalIndividualInfo/validation.d.ts +4 -1
- package/build/features/individual/screens/AdditionalIndividualInfo/validation.js +3 -2
- package/build/features/individual/screens/IndividualList/Email.js +3 -2
- package/build/features/individual/screens/IndividualList/IndividualList.js +18 -5
- package/build/features/individual/screens/IndividualList/UserList.js +13 -9
- package/build/features/individual/screens/IndividualPersonalInfo/Email.js +4 -2
- package/build/features/individual/screens/IndividualPersonalInfo/IndividualPersonalInfo.js +76 -20
- package/build/features/individual/screens/IndividualPhoneInfo/PhoneInfo.js +1 -1
- package/build/features/individual/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/individual/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/individual/screens/OperatorError/index.d.ts +3 -0
- package/build/features/individual/screens/OperatorError/index.js +2 -0
- package/build/features/individual/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/individual/screens/Verify/Verify.js +1 -1
- package/build/features/password/Password.d.ts +1 -0
- package/build/features/password/Password.js +75 -28
- package/build/features/password/screens/CreatePassword/CreatePassword.js +8 -4
- package/build/features/password/screens/OTP/OTP.js +1 -1
- package/build/features/password/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/password/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/password/screens/OperatorError/index.d.ts +3 -0
- package/build/features/password/screens/OperatorError/index.js +2 -0
- package/build/features/password/screens/PrepareDataLoading/PrepareDataLoading.d.ts +4 -0
- package/build/features/password/screens/PrepareDataLoading/PrepareDataLoading.js +10 -0
- package/build/features/password/screens/PrepareDataLoading/index.d.ts +2 -0
- package/build/features/password/screens/PrepareDataLoading/index.js +2 -0
- package/build/features/password/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/password/screens/Verify/Verify.js +5 -5
- package/build/features/shared/Button/FlowsButtons.js +13 -3
- package/build/features/shared/Containers/FeatureContainer.d.ts +1 -0
- package/build/features/shared/Containers/FeatureContainer.js +3 -3
- package/build/features/shared/SuccessFlowButtons/SuccessFlowButtons.d.ts +5 -1
- package/build/features/shared/SuccessFlowButtons/SuccessFlowButtons.js +3 -3
- package/build/features/signIn/SignIn.js +12 -3
- package/build/features/signIn/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/signIn/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/signIn/screens/OperatorError/index.d.ts +3 -0
- package/build/features/signIn/screens/OperatorError/index.js +2 -0
- package/build/features/tax/Tax.d.ts +1 -0
- package/build/features/tax/Tax.js +7 -4
- package/build/features/tax/screens/OperatorError/OperatorError.d.ts +5 -0
- package/build/features/tax/screens/OperatorError/OperatorError.js +9 -0
- package/build/features/tax/screens/OperatorError/index.d.ts +3 -0
- package/build/features/tax/screens/OperatorError/index.js +2 -0
- package/build/features/tax/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
- package/build/features/tax/screens/TaxDetails/TaxDetails.js +7 -2
- package/build/features/tax/screens/Verify/Verify.js +5 -5
- package/build/hooks/index.d.ts +1 -0
- package/build/hooks/index.js +1 -0
- package/build/hooks/useFormDirtyCheck.d.ts +10 -0
- package/build/hooks/useFormDirtyCheck.js +66 -0
- package/build/hooks/useVerifyToken.d.ts +5 -2
- package/build/hooks/useVerifyToken.js +10 -5
- package/build/utils/common.js +4 -4
- package/build/utils/locale.js +2 -1
- package/build/utils/string.d.ts +5 -2
- package/build/utils/string.js +34 -5
- package/package.json +2 -2
|
@@ -21,10 +21,10 @@ var SuccessWithFlowButtons = function () {
|
|
|
21
21
|
var _a = useAppSelector(brandSelector), data = _a.data, loading = _a.loading;
|
|
22
22
|
var settingsData = useAppSelector(settingsSelector).data;
|
|
23
23
|
var isScopeAuthentication = settingsData.appConfig.scope === SCOPE_AUTH;
|
|
24
|
-
var _b = data.verify.responseBody || {}, flows = _b.flows, entity = _b.entity, brand = _b.brand, bank = _b.bank_account, merchant = _b.merchant, user = _b.user, business = _b.business, board_id = _b.board_id, board_info_id = _b.board_info_id, name = _b.name, individuals = _b.individuals;
|
|
24
|
+
var _b = data.verify.responseBody || {}, flows = _b.flows, entity = _b.entity, brand = _b.brand, bank = _b.bank_account, merchant = _b.merchant, user = _b.user, business = _b.business, board_id = _b.board_id, board_info_id = _b.board_info_id, name = _b.name, individuals = _b.individuals, recipient = _b.recipient;
|
|
25
25
|
var onClose = function () {
|
|
26
26
|
dispatch(onCloseCompleteBrand());
|
|
27
27
|
};
|
|
28
|
-
return (_jsx(SuccessFlowButtons, { flowName: data.flowName, loading: loading, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, individuals: individuals, flows: flows || [], onClose: isScopeAuthentication ? onClose : undefined }));
|
|
28
|
+
return (_jsx(SuccessFlowButtons, { flowName: data.flowName, loading: loading, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, individuals: individuals, flows: flows || [], onClose: isScopeAuthentication ? onClose : undefined, recipient: recipient }));
|
|
29
29
|
};
|
|
30
30
|
export default memo(SuccessWithFlowButtons);
|
|
@@ -72,7 +72,7 @@ var VerifyNumber = function (_a) {
|
|
|
72
72
|
var onSubmit = function (formData) {
|
|
73
73
|
dispatch(verifyBrandLeadOTP(deepCopy(formData)));
|
|
74
74
|
};
|
|
75
|
-
var disabled = !methods.formState.isValid ||
|
|
75
|
+
var disabled = !methods.formState.isValid || !phone || resendLoading;
|
|
76
76
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(OTPTitleContainerStyled, { children: _jsxs(OTPTitleStyled, { children: [loading ? t('ide_otp_waiting_title') : t('ide_opt_sent_title'), !loading && phone && _jsx("span", __assign({ dir: 'ltr' }, { children: "".concat(maskPhone(phone || '')) }))] }) }), _jsx(OTPInput, { loading: resendLoading, setLoading: setResendLoading }), _jsx(Button, __assign({ disableBack: true, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
77
77
|
};
|
|
78
78
|
export default React.memo(VerifyNumber);
|
|
@@ -13,7 +13,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
13
13
|
import { memo, useEffect } from 'react';
|
|
14
14
|
import { createRoot } from 'react-dom/client';
|
|
15
15
|
import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener } from '../../hooks';
|
|
16
|
-
import { handleLanguage, settingsSelector } from '../../app/settings';
|
|
16
|
+
import { handleCurrentActiveScreen, handleLanguage, settingsSelector } from '../../app/settings';
|
|
17
17
|
import { FeatureContainer } from '../shared/Containers';
|
|
18
18
|
import { businessSelector, verifyLeadToken } from '../app/business/businessStore';
|
|
19
19
|
import AnimationFlow from '../../components/AnimationFlow';
|
|
@@ -47,9 +47,14 @@ var Business = memo(function (props) {
|
|
|
47
47
|
dispatch(verifyLeadToken(token));
|
|
48
48
|
};
|
|
49
49
|
useEffect(function () {
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
if (settingLoading || !open)
|
|
51
|
+
return;
|
|
52
|
+
if (!data.isValidOperator) {
|
|
53
|
+
dispatch(handleCurrentActiveScreen('BUSINESS_OPERATOR_ERROR_STEP'));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
verifyToken();
|
|
57
|
+
}, [data.isValidOperator, settingLoading]);
|
|
53
58
|
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', screenId: activeScreen.name, merchantInfo: merchant, isMaturityExpress: isMaturityExpress, dialogEdgeFormat: data.appConfig.dialogEdgeFormat, features: appConfig.features }, { children: _jsx(FeatureContainer, __assign({ isMaturityExpress: isMaturityExpress }, { children: businessFeatureScreens.map(function (_a, index) {
|
|
54
59
|
var Element = _a.element, name = _a.name;
|
|
55
60
|
var isActive = activeScreen.name === name;
|
|
@@ -18,9 +18,9 @@ import { useAppDispatch, useLanguage, useAppSelector, useSetFromDefaultValues, u
|
|
|
18
18
|
import Form from '../../../../components/Form';
|
|
19
19
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
20
20
|
import { useTranslation } from 'react-i18next';
|
|
21
|
-
import { handlePrevScreenStep } from '../../../../app/settings';
|
|
21
|
+
import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
|
|
22
22
|
import Button from '../../../shared/Button';
|
|
23
|
-
import { deepCopy } from '../../../../utils';
|
|
23
|
+
import { deepCopy, sendCustomEventToGTM } from '../../../../utils';
|
|
24
24
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
25
25
|
import Collapse from '../../../../components/Collapse';
|
|
26
26
|
import OperationStartDate from './OperationStartDate';
|
|
@@ -36,6 +36,7 @@ var Activities = function () {
|
|
|
36
36
|
var _b = React.useState(false), anchorEl = _b[0], setAnchorEl = _b[1];
|
|
37
37
|
var _c = React.useState(false), collapse = _c[0], setCollapse = _c[1];
|
|
38
38
|
var dispatch = useAppDispatch();
|
|
39
|
+
var settingsData = useAppSelector(settingsSelector).data;
|
|
39
40
|
var isAr = useLanguage().isAr;
|
|
40
41
|
var t = useTranslation().t;
|
|
41
42
|
var _d = useAppSelector(businessSelector), data = _d.data, loading = _d.loading, error = _d.error;
|
|
@@ -64,6 +65,14 @@ var Activities = function () {
|
|
|
64
65
|
var onBack = function () {
|
|
65
66
|
dispatch(handlePrevScreenStep());
|
|
66
67
|
};
|
|
68
|
+
React.useEffect(function () {
|
|
69
|
+
sendCustomEventToGTM({
|
|
70
|
+
event: 'Send Event',
|
|
71
|
+
event_category: 'Account Creation Flow',
|
|
72
|
+
event_action: 'Brand Activities Details Page',
|
|
73
|
+
event_label: settingsData.businessCountry.iso2
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
67
76
|
React.useEffect(function () {
|
|
68
77
|
if (error)
|
|
69
78
|
dispatch(clearError());
|
|
@@ -72,7 +81,7 @@ var Activities = function () {
|
|
|
72
81
|
anchorEl ? setAnchorEl(false) : setAnchorEl(true);
|
|
73
82
|
};
|
|
74
83
|
var isOperationStartDateVerified = dataVerified['operations.business_start_date'] && (operations === null || operations === void 0 ? void 0 : operations.business_start_date) === methods.watch('operationStartDate');
|
|
75
|
-
var disabled = !methods.formState.isValid
|
|
84
|
+
var disabled = !methods.formState.isValid;
|
|
76
85
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Collapse, __assign({ in: !collapse && !anchorEl }, { children: _jsx(LicenseName, {}) })), _jsx(Collapse, __assign({ in: !collapse }, { children: _jsx(ActivitiesList, { readOnly: readOnly['activities'] || noneEditable['activities'], onListOpen: function () { return handleMenuClick(); }, onListClose: function () { return handleMenuClick(); } }) })), _jsx(Collapse, __assign({ in: !anchorEl }, { children: _jsx(OperationStartDate, { isVerified: isOperationStartDateVerified, readOnly: readOnly['operationStartDate'] || noneEditable['operations.business_start_date'], onDateClicked: handleCollapseOpenClose }) })), _jsx(Collapse, __assign({ in: !collapse && !anchorEl }, { children: _jsx(Button, __assign({ disableBack: true, onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: disabled, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
77
86
|
};
|
|
78
87
|
export default Activities;
|
|
@@ -23,7 +23,7 @@ import ScreenContainer from '../../../shared/Containers/ScreenContainer';
|
|
|
23
23
|
import { businessSelector, clearError, updateLeadBusinessType } from '../../../app/business/businessStore';
|
|
24
24
|
import { BusinessType as Type } from '../../../../@types';
|
|
25
25
|
import Button from '../../../shared/Button';
|
|
26
|
-
import { deepCopy, isKW, isOtherLicense, isOtherThanKWOrSA, isSA } from '../../../../utils';
|
|
26
|
+
import { deepCopy, isKW, isOtherLicense, isOtherThanKWOrSA, isSA, sendCustomEventToGTM } from '../../../../utils';
|
|
27
27
|
import { KWLicenseValidationSchema, LicenseValidationSchema, OtherCountryLicenseValidationSchema } from './validation';
|
|
28
28
|
import LicenseList from './LicenseList';
|
|
29
29
|
import LicenseCertificate from './LicenseCertificate';
|
|
@@ -46,6 +46,14 @@ var BusinessType = function (_a) {
|
|
|
46
46
|
var isAr = useLanguage().isAr;
|
|
47
47
|
var dispatch = useAppDispatch();
|
|
48
48
|
var _d = React.useState(), listActive = _d[0], setListActive = _d[1];
|
|
49
|
+
React.useEffect(function () {
|
|
50
|
+
sendCustomEventToGTM({
|
|
51
|
+
event: 'Send Event',
|
|
52
|
+
event_category: 'Account Creation Flow',
|
|
53
|
+
event_action: 'CR Page',
|
|
54
|
+
event_label: settingsData.businessCountry.iso2
|
|
55
|
+
});
|
|
56
|
+
}, []);
|
|
49
57
|
var handleMenuClick = function (flag) {
|
|
50
58
|
setListActive(flag);
|
|
51
59
|
};
|
|
@@ -99,7 +107,7 @@ var BusinessType = function (_a) {
|
|
|
99
107
|
var hasEntityList = !!(entityLicenseList === null || entityLicenseList === void 0 ? void 0 : entityLicenseList.length);
|
|
100
108
|
var showLicenseList = hasEntityList ? (isSACountry || isOtherCountry) && isOtherLicense(selectedLicenseEntity) : isSACountry || isOtherCountry;
|
|
101
109
|
var showEntityList = isKWCountry ? hasEntityList && !isLicenseListActive && isCR : hasEntityList && !isLicenseListActive;
|
|
102
|
-
var disabled = !methods.formState.isValid ||
|
|
110
|
+
var disabled = !methods.formState.isValid || uploading || uploadingArticle;
|
|
103
111
|
var disableBack = !data.otpData.isNID;
|
|
104
112
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(LicenseType, { show: !listActive && isKWCountry }), _jsx(EntityLicenseList, { show: showEntityList, onListOpen: function () { return handleMenuClick(ListType.EntityLicenseList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(LicenseList, { show: showLicenseList && !isEntityLicenseListActive, onListOpen: function () { return handleMenuClick(ListType.LicenseList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(EntityName, { show: !isAnyListActive && isKWCountry && isCR }), _jsx(LicenseNumber, { show: isKWCountry ? !isAnyListActive && isCR : !isAnyListActive }), _jsx(LicenseCertificate, { show: !isAnyListActive && isKWCountry && isCR }), _jsx(Article, { show: !isAnyListActive && isKWCountry && isCR }), _jsx(Collapse, __assign({ in: !isAnyListActive, timeout: 500 }, { children: _jsx(Button, __assign({ disableBack: disableBack, onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: disabled, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
105
113
|
};
|
|
@@ -62,7 +62,7 @@ var CivilID = function (_a) {
|
|
|
62
62
|
if (error)
|
|
63
63
|
dispatch(clearError());
|
|
64
64
|
};
|
|
65
|
-
var disabled = !methods.formState.isValid
|
|
65
|
+
var disabled = !methods.formState.isValid;
|
|
66
66
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(IDNumber, { sx: { mb: 7.5, transition: 'mb 0.3s' } }), _jsx(Button, __assign({ loading: loading, isAr: isAr, disableBack: true, disabled: disabled || settingsStore.loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
67
67
|
};
|
|
68
68
|
export default React.memo(CivilID);
|
|
@@ -17,7 +17,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
17
17
|
import { useForm, FormProvider } from 'react-hook-form';
|
|
18
18
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
19
19
|
import { useAppDispatch, useAppSelector, useDataNoneEditable, useDataVerified, useExcludeReadOnlyFelids, useFormErrorAndUpdateReadOnly, useFormReadOnly, useSetFromDefaultValues } from '../../../../hooks';
|
|
20
|
-
import { handlePrevScreenStep } from '../../../../app/settings';
|
|
20
|
+
import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
|
|
21
21
|
import { CustomerInfoValidation } from './validation';
|
|
22
22
|
import Form from '../../../../components/Form';
|
|
23
23
|
import Button from '../../../shared/Button';
|
|
@@ -30,7 +30,7 @@ import TransactionPolicy from './TransactionPolicy';
|
|
|
30
30
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
31
31
|
import Collapse from '../../../../components/Collapse';
|
|
32
32
|
import { businessSelector, clearError, updateCustomersInfo } from '../../../app/business/businessStore';
|
|
33
|
-
import { deepCopy } from '../../../../utils';
|
|
33
|
+
import { deepCopy, sendCustomEventToGTM } from '../../../../utils';
|
|
34
34
|
var FormStyled = styled(Form)(function () { return ({
|
|
35
35
|
display: 'flex',
|
|
36
36
|
flexDirection: 'column'
|
|
@@ -45,6 +45,7 @@ var Customers = function (_a) {
|
|
|
45
45
|
var _b, _c, _d, _e, _f;
|
|
46
46
|
var _g = React.useState(), listActive = _g[0], setListActive = _g[1];
|
|
47
47
|
var dispatch = useAppDispatch();
|
|
48
|
+
var settingsData = useAppSelector(settingsSelector).data;
|
|
48
49
|
var _h = useAppSelector(businessSelector), data = _h.data, loading = _h.loading, error = _h.error;
|
|
49
50
|
var _j = data.customersData, customerLocations = _j.customerLocations, expectedCustomer = _j.expectedCustomer, expectedSale = _j.expectedSale, refundPolicy = _j.refundPolicy, transactionPolicy = _j.transactionPolicy;
|
|
50
51
|
var _k = ((_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.brand) || {}, data_status = _k.data_status, data_verification = _k.data_verification, operations = _k.operations, terms = _k.terms;
|
|
@@ -75,6 +76,14 @@ var Customers = function (_a) {
|
|
|
75
76
|
'operations.sales_range'
|
|
76
77
|
]);
|
|
77
78
|
var getFelids = useExcludeReadOnlyFelids(methods, readOnly).getFelids;
|
|
79
|
+
React.useEffect(function () {
|
|
80
|
+
sendCustomEventToGTM({
|
|
81
|
+
event: 'Send Event',
|
|
82
|
+
event_category: 'Account Creation Flow',
|
|
83
|
+
event_action: 'Business Market and Size Details Page',
|
|
84
|
+
event_label: settingsData.businessCountry.iso2
|
|
85
|
+
});
|
|
86
|
+
}, []);
|
|
78
87
|
React.useEffect(function () {
|
|
79
88
|
var _a, _b;
|
|
80
89
|
var isTermsAgreed = !!((_b = (_a = terms === null || terms === void 0 ? void 0 : terms.find) === null || _a === void 0 ? void 0 : _a.call(terms, function (_a) {
|
|
@@ -127,7 +136,7 @@ var Customers = function (_a) {
|
|
|
127
136
|
var whenNotSelectExpectedCustomers = !isCustomerLocationsListActive && !isExpectedSalesListActive;
|
|
128
137
|
var whenNotSelectExpectedSales = !isCustomerLocationsListActive && !isExpectedCustomersListActive;
|
|
129
138
|
var isAnyListSelected = !isExpectedCustomersListActive && !isCustomerLocationsListActive && !isExpectedSalesListActive;
|
|
130
|
-
var disabled = !methods.formState.isValid
|
|
139
|
+
var disabled = !methods.formState.isValid;
|
|
131
140
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(CustomerLocations, { readOnly: readOnly['customerLocations'] || noneEditable['operations.customer_base_location'], show: whenNotSelectCustomersLocation, onListOpen: function () { return handleMenuClick(ListType.CustomerLocationsList); }, onListClose: function () { return handleMenuClick(); }, isVerified: isCustomerLocationsVerified }), _jsx(ExpectedCustomers, { readOnly: readOnly['expectedCustomer'] || noneEditable['operations.customer_base'], show: whenNotSelectExpectedCustomers, onListOpen: function () { return handleMenuClick(ListType.ExpectedCustomersList); }, onListClose: function () { return handleMenuClick(); }, isVerified: isExpectedCustomersVerified }), _jsx(ExpectedSales, { readOnly: readOnly['expectedSale'] || noneEditable['operations.sales_range'], show: whenNotSelectExpectedSales, onListOpen: function () { return handleMenuClick(ListType.ExpectedSalesList); }, onListClose: function () { return handleMenuClick(); }, isVerified: isExpectedSalesRangeVerified }), _jsxs(Collapse, __assign({ in: isAnyListSelected }, { children: [_jsx(RefundPolicy, { readOnly: readOnly['refundPolicy'] || noneEditable['terms'] }), _jsx(TransactionPolicy, { readOnly: readOnly['transactionPolicy'] || noneEditable['terms'] }), _jsx(Box, __assign({ sx: { mt: 2 } }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: disabled, loading: loading, error: t(error || '') }, { children: t('next') })) }))] }))] })) })) }));
|
|
132
141
|
};
|
|
133
142
|
export default React.memo(Customers);
|
|
@@ -22,7 +22,7 @@ import Collapse from '../../../../components/Collapse';
|
|
|
22
22
|
import ExpandIcon from '../../../../components/ExpandIcon';
|
|
23
23
|
import { EndAdornmentExpanded } from '../../../shared/EndAdornment';
|
|
24
24
|
import { businessSelector, clearError } from '../../../app/business/businessStore';
|
|
25
|
-
import { isExist } from '../../../../utils';
|
|
25
|
+
import { getCurrencyByCountryIso2, isExist } from '../../../../utils';
|
|
26
26
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
27
27
|
import Search from '../../../shared/Search';
|
|
28
28
|
import InputSelect from '../../../shared/InputSelect';
|
|
@@ -66,7 +66,7 @@ var ExpectedSalesRange = function (_a) {
|
|
|
66
66
|
var expectedSaleControl = useController({ name: 'expectedSale', control: control });
|
|
67
67
|
var _e = useAppSelector(businessSelector), data = _e.data, error = _e.error;
|
|
68
68
|
var settingsData = useAppSelector(settingsSelector).data;
|
|
69
|
-
var activitiesData = data.activitiesData
|
|
69
|
+
var activitiesData = data.activitiesData;
|
|
70
70
|
var expectedSales = (activitiesData.responseBody || {}).expectedSales;
|
|
71
71
|
var expectedSalesRangeValue = expectedSaleControl.field.value;
|
|
72
72
|
var countryCode = settingsData.businessCountry;
|
|
@@ -121,8 +121,11 @@ var ExpectedSalesRange = function (_a) {
|
|
|
121
121
|
if (item)
|
|
122
122
|
setSubIndex(item.id);
|
|
123
123
|
}, [anchorEl, expectedSalesRangeValue]);
|
|
124
|
+
var getCurrency = React.useMemo(function () {
|
|
125
|
+
return t(getCurrencyByCountryIso2(countryCode.iso2));
|
|
126
|
+
}, [countryCode.iso2]);
|
|
124
127
|
return (_jsx(Collapse, __assign({ in: show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('expected_sales_monthly', {
|
|
125
|
-
currency:
|
|
128
|
+
currency: getCurrency
|
|
126
129
|
}) }), _jsx(InputStyled, { readOnly: readOnly, value: (isAr ? expectedSalesRangeValue === null || expectedSalesRangeValue === void 0 ? void 0 : expectedSalesRangeValue.name.ar : expectedSalesRangeValue === null || expectedSalesRangeValue === void 0 ? void 0 : expectedSalesRangeValue.name.en) || '', onClick: !!anchorEl ? handleCloseMainMenu : handleOpenMainMenu, placeholder: t('choose_expected_sales'), endAdornment: _jsx(EndAdornmentExpanded, { anchorEl: anchorEl, isVerified: isVerified }) }), _jsxs(Collapse, __assign({ in: !!anchorEl }, { children: [_jsx(Search, { onSearchValue: handleSearch }), _jsx(SimpleListStyled, { sx: { maxHeight: '350px', paddingTop: 0 }, list: expectedSalesRangeList, listItemProps: { sx: { padding: 0 } }, onSelectItem: function (item) {
|
|
127
130
|
var isOnlyOneItem = !item.sub || item.sub.length === 1;
|
|
128
131
|
if (isOnlyOneItem)
|
|
@@ -22,7 +22,7 @@ import Button from '../../../shared/Button';
|
|
|
22
22
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
23
23
|
import { businessSelector, clearError, updateLeadIdentity } from '../../../app/business/businessStore';
|
|
24
24
|
import Collapse from '../../../../components/Collapse';
|
|
25
|
-
import { deepCopy, isOtherThanKWOrSA } from '../../../../utils';
|
|
25
|
+
import { deepCopy, isOtherThanKWOrSA, sendCustomEventToGTM } from '../../../../utils';
|
|
26
26
|
import { NIDOtherCountryValidationSchema, NIDValidationSchema } from './validation';
|
|
27
27
|
import ID from './ID';
|
|
28
28
|
import DOB from './DOB';
|
|
@@ -44,6 +44,14 @@ var IDBOD = function (_a) {
|
|
|
44
44
|
mode: 'onChange'
|
|
45
45
|
});
|
|
46
46
|
useSetFromDefaultValues(methods, data.nidData);
|
|
47
|
+
React.useEffect(function () {
|
|
48
|
+
sendCustomEventToGTM({
|
|
49
|
+
event: 'Send Event',
|
|
50
|
+
event_category: 'Account Creation Flow',
|
|
51
|
+
event_action: 'ID Details Step',
|
|
52
|
+
event_label: settingsData.businessCountry.iso2
|
|
53
|
+
});
|
|
54
|
+
}, []);
|
|
47
55
|
React.useEffect(function () {
|
|
48
56
|
if (error)
|
|
49
57
|
dispatch(clearError());
|
|
@@ -54,7 +62,7 @@ var IDBOD = function (_a) {
|
|
|
54
62
|
var handleCollapseOpenClose = function (flag) {
|
|
55
63
|
setCollapse(flag);
|
|
56
64
|
};
|
|
57
|
-
var disabled = !methods.formState.isValid
|
|
65
|
+
var disabled = !methods.formState.isValid;
|
|
58
66
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Collapse, __assign({ in: !collapse }, { children: _jsx(ID, {}) })), _jsx(DOB, { onDateClicked: handleCollapseOpenClose }), _jsx(Collapse, __assign({ in: !collapse }, { children: _jsx(Button, __assign({ loading: loading, disableBack: true, isAr: isAr, disabled: disabled, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
59
67
|
};
|
|
60
68
|
export default React.memo(IDBOD);
|
|
@@ -82,7 +82,7 @@ var OTP = function (_a) {
|
|
|
82
82
|
var onBack = function () {
|
|
83
83
|
dispatch(handlePrevScreenStep());
|
|
84
84
|
};
|
|
85
|
-
var disabled = !methods.formState.isValid
|
|
85
|
+
var disabled = !methods.formState.isValid;
|
|
86
86
|
var idNumber = data.nidData.nid;
|
|
87
87
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(OTPTitleContainerStyled, { children: _jsxs(OTPTitleStyled, { children: [loading ? t('ide_otp_waiting_title') : t('opt_nid_sent_title', { provider: 'ABSHER' }), ' ', !loading && _jsx("span", __assign({ dir: 'ltr' }, { children: "".concat(maskID(idNumber || '')) }))] }) }), _jsx(OTPInput, {}), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
88
88
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import GenericError from '../../../shared/GenericError';
|
|
5
|
+
var OperatorError = function (_a) {
|
|
6
|
+
var t = useTranslation().t;
|
|
7
|
+
return _jsx(GenericError, { error: t('operator_is_invalid'), errorTitle: t('oops') });
|
|
8
|
+
};
|
|
9
|
+
export default React.memo(OperatorError);
|
|
@@ -10,13 +10,24 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import { memo } from 'react';
|
|
13
|
+
import React, { memo } from 'react';
|
|
14
14
|
import { useAppSelector } from '../../../../hooks';
|
|
15
15
|
import { businessSelector } from '../../../app/business/businessStore';
|
|
16
16
|
import SuccessFlowButtons from '../../../shared/SuccessFlowButtons';
|
|
17
|
+
import { sendCustomEventToGTM } from '../../../../utils';
|
|
18
|
+
import { settingsSelector } from '../../../../app/settings';
|
|
17
19
|
var SuccessWithFlowButtons = function () {
|
|
18
20
|
var data = useAppSelector(businessSelector).data;
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
+
var settingsData = useAppSelector(settingsSelector).data;
|
|
22
|
+
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, individuals = _a.individuals, recipient = _a.recipient;
|
|
23
|
+
React.useEffect(function () {
|
|
24
|
+
sendCustomEventToGTM({
|
|
25
|
+
event: 'Send Event',
|
|
26
|
+
event_category: 'Account Creation Flow',
|
|
27
|
+
event_action: 'Board Page View',
|
|
28
|
+
event_label: settingsData.businessCountry.iso2
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
31
|
+
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, individuals: individuals, boardInfoId: board_info_id, flows: flows || [], recipient: recipient }));
|
|
21
32
|
};
|
|
22
33
|
export default memo(SuccessWithFlowButtons);
|
|
@@ -17,9 +17,9 @@ import { useForm, FormProvider } from 'react-hook-form';
|
|
|
17
17
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
18
18
|
import Box from '@mui/material/Box/Box';
|
|
19
19
|
import { styled } from '@mui/material/styles';
|
|
20
|
-
import { handlePrevScreenStep } from '../../../../app/settings';
|
|
20
|
+
import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
|
|
21
21
|
import { useLanguage } from '../../../../hooks';
|
|
22
|
-
import { deepCopy, maskPhone } from '../../../../utils';
|
|
22
|
+
import { deepCopy, maskPhone, sendCustomEventToGTM } from '../../../../utils';
|
|
23
23
|
import Form from '../../../../components/Form';
|
|
24
24
|
import Text from '../../../../components/Text';
|
|
25
25
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
@@ -49,6 +49,7 @@ var FormStyled = styled(Form)(function () { return ({
|
|
|
49
49
|
var VerifyNumber = function (_a) {
|
|
50
50
|
var _b, _c;
|
|
51
51
|
var dispatch = useAppDispatch();
|
|
52
|
+
var settingsData = useAppSelector(settingsSelector).data;
|
|
52
53
|
var _d = useAppSelector(businessSelector), data = _d.data, loading = _d.loading, error = _d.error;
|
|
53
54
|
var methods = useForm({
|
|
54
55
|
resolver: yupResolver(OTPValidation),
|
|
@@ -59,6 +60,15 @@ var VerifyNumber = function (_a) {
|
|
|
59
60
|
var isAr = useLanguage().isAr;
|
|
60
61
|
var _e = React.useState(false), resendLoading = _e[0], setResendLoading = _e[1];
|
|
61
62
|
var phone = (_c = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.verification_by) === null || _c === void 0 ? void 0 : _c.sent_to;
|
|
63
|
+
React.useEffect(function () {
|
|
64
|
+
var _a;
|
|
65
|
+
sendCustomEventToGTM({
|
|
66
|
+
event: 'Send Event',
|
|
67
|
+
event_category: 'Account Creation Flow',
|
|
68
|
+
event_action: 'Business OTP Step',
|
|
69
|
+
event_label: (_a = settingsData.businessCountry) === null || _a === void 0 ? void 0 : _a.iso2
|
|
70
|
+
});
|
|
71
|
+
}, []);
|
|
62
72
|
React.useEffect(function () {
|
|
63
73
|
if (error && methods.formState.isValid && phone)
|
|
64
74
|
dispatch(clearError());
|
|
@@ -72,7 +82,7 @@ var VerifyNumber = function (_a) {
|
|
|
72
82
|
var onBack = function () {
|
|
73
83
|
dispatch(handlePrevScreenStep());
|
|
74
84
|
};
|
|
75
|
-
var disabled = !methods.formState.isValid ||
|
|
85
|
+
var disabled = !methods.formState.isValid || !phone || resendLoading;
|
|
76
86
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(OTPTitleContainerStyled, { children: _jsxs(OTPTitleStyled, { children: [loading ? t('ide_otp_waiting_title') : t('ide_opt_sent_title'), !loading && phone && _jsx("span", __assign({ dir: 'ltr' }, { children: "".concat(maskPhone(phone || '')) }))] }) }), _jsx(OTPInput, { loading: resendLoading, setLoading: setResendLoading }), _jsx(Button, __assign({ disableBack: true, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
77
87
|
};
|
|
78
88
|
export default React.memo(VerifyNumber);
|
|
@@ -89,7 +89,8 @@ var Connect = memo(function (props) {
|
|
|
89
89
|
React.useEffect(function () {
|
|
90
90
|
initializeGTM();
|
|
91
91
|
sendPageView({
|
|
92
|
-
title: 'Connect'
|
|
92
|
+
title: 'Connect',
|
|
93
|
+
connect_flow: 'Normal'
|
|
93
94
|
});
|
|
94
95
|
if (props.leadId) {
|
|
95
96
|
dispatch(storeLeadId(props.leadId));
|
|
@@ -124,7 +125,7 @@ var Connect = memo(function (props) {
|
|
|
124
125
|
event: 'Send Event',
|
|
125
126
|
event_category: 'User Registration Flow',
|
|
126
127
|
event_action: 'Registration Landing Page Viewed',
|
|
127
|
-
|
|
128
|
+
event_label: (_b = data.businessCountry) === null || _b === void 0 ? void 0 : _b.iso2
|
|
128
129
|
});
|
|
129
130
|
sendCustomDimension({
|
|
130
131
|
event: 'PageView',
|
|
@@ -56,7 +56,7 @@ var BrandSegment = function (_a) {
|
|
|
56
56
|
if (error)
|
|
57
57
|
dispatch(clearError());
|
|
58
58
|
}, [methods.formState.isValid]);
|
|
59
|
-
var disabled = !methods.formState.isValid
|
|
59
|
+
var disabled = !methods.formState.isValid;
|
|
60
60
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(TeamSize, { show: true, onListOpen: function () { return setListActive(true); }, onListClose: function () { return setListActive(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('next') })) }))] })) })) }));
|
|
61
61
|
};
|
|
62
62
|
export default React.memo(BrandSegment);
|
|
@@ -52,7 +52,7 @@ import { useAppSelector, useAppDispatch, useLanguage } from '../../../../hooks';
|
|
|
52
52
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
53
53
|
import BusinessCountry from '../../../shared/BusinessCountry';
|
|
54
54
|
import Button from '../../../shared/Button';
|
|
55
|
-
import { findCountryByIso2, isKW, isOtherThanKWOrSA, updateLocationUrlWithCountry } from '../../../../utils';
|
|
55
|
+
import { findCountryByIso2, isKW, isOtherThanKWOrSA, sendCustomEventToGTM, updateLocationUrlWithCountry } from '../../../../utils';
|
|
56
56
|
import Collapse from '../../../../components/Collapse';
|
|
57
57
|
import { handleNextScreenStep, handleSetCountryByIso2, settingsSelector } from '../../../../app/settings';
|
|
58
58
|
import { connectSelector, setDefaultCountryCode, updateBusinessCountry, storeIsStartFromBusinessCountry, clearError } from '../../../app/connect/connectStore';
|
|
@@ -81,7 +81,14 @@ var BusinessCountryScreen = function (_a) {
|
|
|
81
81
|
return [2];
|
|
82
82
|
countryCode = findCountryByIso2(settingsData.countries, iso2);
|
|
83
83
|
dispatch(handleSetCountryByIso2(iso2));
|
|
84
|
-
|
|
84
|
+
sendCustomEventToGTM({
|
|
85
|
+
event: 'Send Event',
|
|
86
|
+
event_category: 'User Registration Flow',
|
|
87
|
+
event_action: 'Country selection page view',
|
|
88
|
+
event_label: iso2
|
|
89
|
+
});
|
|
90
|
+
if (settingsData.appConfig.mode !== 'popup')
|
|
91
|
+
updateLocationUrlWithCountry(iso2);
|
|
85
92
|
if (!data.leadId) return [3, 2];
|
|
86
93
|
return [4, dispatch(updateBusinessCountry(iso2))];
|
|
87
94
|
case 1:
|
|
@@ -97,7 +97,7 @@ var CivilID = function (_a) {
|
|
|
97
97
|
React.useEffect(function () {
|
|
98
98
|
dispatch(resetStore());
|
|
99
99
|
}, []);
|
|
100
|
-
var disabled = !methods.formState.isValid
|
|
100
|
+
var disabled = !methods.formState.isValid;
|
|
101
101
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(IDNumber, { sx: { mb: methods.formState.isValid ? 7.5 : 0, transition: 'mb 0.3s' } }), _jsx(Button, __assign({ loading: loading, isAr: isAr, onBackClicked: onBackToCountryList, disableBack: !data.isStartFromBusinessCountry, disabled: disabled || settingsStore.loading, error: t(error || '') }, { children: t('next') })), _jsxs(Collapse, __assign({ in: !methods.formState.isValid }, { children: [_jsxs(OrBoxStyled, { children: [_jsx(DividerStyled, {}), _jsx(TextStyled, { children: t('or') }), _jsx(DividerStyled, {})] }), _jsx(MobileButton, __assign({ onClick: function () { return onBack(); }, disabled: loading || settingsStore.loading }, { children: t('mobile_button_label') }))] }))] })) })) }));
|
|
102
102
|
};
|
|
103
103
|
export default React.memo(CivilID);
|
|
@@ -53,6 +53,7 @@ import { useController, useFormContext } from 'react-hook-form';
|
|
|
53
53
|
import { useTranslation } from 'react-i18next';
|
|
54
54
|
import { styled } from '@mui/material/styles';
|
|
55
55
|
import { useAppDispatch, useAppSelector } from '../../../../hooks';
|
|
56
|
+
import { removeAllOtherThanCharsNumbersAtAndDot } from '../../../../utils';
|
|
56
57
|
import Collapse from '../../../../components/Collapse';
|
|
57
58
|
import { ScreenContainer } from '../../../shared/Containers';
|
|
58
59
|
import Input from '../../../shared/Input';
|
|
@@ -89,7 +90,8 @@ var Email = function (_a) {
|
|
|
89
90
|
});
|
|
90
91
|
}); }, 500);
|
|
91
92
|
var handleEmailChange = function (event) {
|
|
92
|
-
|
|
93
|
+
var value = removeAllOtherThanCharsNumbersAtAndDot(event.target.value);
|
|
94
|
+
emailControl.field.onChange(value);
|
|
93
95
|
};
|
|
94
96
|
React.useEffect(function () {
|
|
95
97
|
var isValid = emailValue && !error && emailValue.length > 3;
|
|
@@ -100,7 +100,7 @@ var Individual = function (_a) {
|
|
|
100
100
|
}, [responseBody]);
|
|
101
101
|
var isLeadEmailAvailable = (contact === null || contact === void 0 ? void 0 : contact.email) === methods.watch('email');
|
|
102
102
|
var isEmailValid = typeof is_available === 'undefined' ? isLeadEmailAvailable : is_available;
|
|
103
|
-
var emailErrChecks = !methods.formState.isValid || !!methods.formState.errors.email
|
|
103
|
+
var emailErrChecks = !methods.formState.isValid || !!methods.formState.errors.email;
|
|
104
104
|
var disabled = emailErrChecks || emailChecking || !isEmailValid;
|
|
105
105
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Name, { show: !listActive }), _jsx(MobileNumber, { show: !isMobile, onListOpen: function () { return handleMenuListClick(); }, onListClose: function () { return handleMenuListClick(); }, countries: settingsData.countries }), _jsx(Email, { show: !listActive, fetchingEmail: function (v) { return setEmailChecking(v); }, emailChecking: emailChecking }), _jsx(Collapse, __assign({ in: !listActive }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
106
106
|
};
|
|
@@ -60,9 +60,9 @@ var BrandList = function (_a) {
|
|
|
60
60
|
setAnchorEl(null);
|
|
61
61
|
(_a = rest.onListClose) === null || _a === void 0 ? void 0 : _a.call(rest);
|
|
62
62
|
};
|
|
63
|
-
var getBrandName = function (
|
|
64
|
-
var
|
|
65
|
-
return (isAr ?
|
|
63
|
+
var getBrandName = function (brand) {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
return (isAr ? (_a = brand === null || brand === void 0 ? void 0 : brand.name) === null || _a === void 0 ? void 0 : _a.ar : (_b = brand === null || brand === void 0 ? void 0 : brand.name) === null || _b === void 0 ? void 0 : _b.en) || '';
|
|
66
66
|
};
|
|
67
67
|
var getBrandId = function (item) {
|
|
68
68
|
return item.id || '';
|
|
@@ -84,7 +84,7 @@ var Merchant = function (_a) {
|
|
|
84
84
|
if (termAndConditionChecked === true)
|
|
85
85
|
methods.setValue('termAndConditionChecked', termAndConditionChecked);
|
|
86
86
|
}, [termAndConditionChecked]);
|
|
87
|
-
var brandErrChecks = !methods.formState.isValid || !!methods.formState.errors.brandName
|
|
87
|
+
var brandErrChecks = !methods.formState.isValid || !!methods.formState.errors.brandName;
|
|
88
88
|
var disabled = brandErrChecks || brandNameChecking || ((_c = data.brandData.responseBody) === null || _c === void 0 ? void 0 : _c.response_code) === '5';
|
|
89
89
|
var hasBrandList = (brandList === null || brandList === void 0 ? void 0 : brandList.length) > 0;
|
|
90
90
|
var isOtherBrand = (brandListItem === null || brandListItem === void 0 ? void 0 : brandListItem.id) === 'other' && hasBrandList;
|
|
@@ -15,7 +15,7 @@ var SalesChannels = function (_a) {
|
|
|
15
15
|
var channelList = (responseBody || {}).channel_list;
|
|
16
16
|
var selectedBrandControl = getValues('selectedBrandItem');
|
|
17
17
|
React.useEffect(function () {
|
|
18
|
-
if (selectedBrandItem.id) {
|
|
18
|
+
if (selectedBrandItem === null || selectedBrandItem === void 0 ? void 0 : selectedBrandItem.id) {
|
|
19
19
|
setValue('selectedBrandItem', selectedBrandItem);
|
|
20
20
|
var sales = mapSalesChannel(selectedBrandItem.channel_services || []);
|
|
21
21
|
field.onChange(sales);
|
|
@@ -74,12 +74,12 @@ var ListType;
|
|
|
74
74
|
ListType["CountryCodeList"] = "CountryCodeList";
|
|
75
75
|
})(ListType || (ListType = {}));
|
|
76
76
|
var Mobile = function (_a) {
|
|
77
|
-
var _b
|
|
77
|
+
var _b;
|
|
78
78
|
var settingsStore = useAppSelector(settingsSelector);
|
|
79
|
-
var
|
|
80
|
-
var
|
|
79
|
+
var _c = useAppSelector(connectSelector), data = _c.data, loading = _c.loading, error = _c.error;
|
|
80
|
+
var _d = React.useState(), listType = _d[0], setListType = _d[1];
|
|
81
81
|
var dispatch = useAppDispatch();
|
|
82
|
-
var
|
|
82
|
+
var _e = data.mobileData, mobile = _e.mobile, countryCode = _e.countryCode, termAndConditionChecked = _e.termAndConditionChecked;
|
|
83
83
|
var methods = useForm({
|
|
84
84
|
resolver: yupResolver(PhoneValidationSchema),
|
|
85
85
|
defaultValues: {
|
|
@@ -92,6 +92,7 @@ var Mobile = function (_a) {
|
|
|
92
92
|
useSetFromDefaultValues(methods, data.mobileData);
|
|
93
93
|
var t = useTranslation().t;
|
|
94
94
|
var isAr = useLanguage().isAr;
|
|
95
|
+
var country = (_b = settingsStore.data.businessCountry) === null || _b === void 0 ? void 0 : _b.iso2;
|
|
95
96
|
var handleMenuListClick = function (flag) {
|
|
96
97
|
setListType(flag);
|
|
97
98
|
};
|
|
@@ -107,13 +108,15 @@ var Mobile = function (_a) {
|
|
|
107
108
|
dispatch(resetNIDScreen());
|
|
108
109
|
dispatch(resetCivilScreen());
|
|
109
110
|
};
|
|
110
|
-
var isKWCountry = React.useMemo(function () {
|
|
111
|
-
var isOtherThanKWOrSACountry = React.useMemo(function () {
|
|
111
|
+
var isKWCountry = React.useMemo(function () { return isKW(country); }, [country]);
|
|
112
|
+
var isOtherThanKWOrSACountry = React.useMemo(function () { return isOtherThanKWOrSA(country); }, [country]);
|
|
112
113
|
var onBack = function () {
|
|
114
|
+
var eventAction = isKWCountry ? 'PACI Click' : 'Abser Click';
|
|
113
115
|
sendCustomEventToGTM({
|
|
114
116
|
event: 'Send Event',
|
|
115
117
|
event_category: 'User Registration Flow',
|
|
116
|
-
event_action:
|
|
118
|
+
event_action: eventAction,
|
|
119
|
+
event_label: country
|
|
117
120
|
});
|
|
118
121
|
dispatch(handlePrevScreenStep(isKWCountry ? 'CONNECT_CIVIL_ID_STEP' : 'CONNECT_NID_STEP'));
|
|
119
122
|
};
|
|
@@ -126,7 +129,7 @@ var Mobile = function (_a) {
|
|
|
126
129
|
var isBusinessListActive = listType === ListType.BusinessList;
|
|
127
130
|
var isCountryListActive = listType === ListType.CountryCodeList;
|
|
128
131
|
var listActive = isBusinessListActive || isCountryListActive;
|
|
129
|
-
var disabled = !methods.formState.isValid
|
|
132
|
+
var disabled = !methods.formState.isValid;
|
|
130
133
|
var title = t('join_our_community');
|
|
131
134
|
var subTitle = t('ide_terms_and_conditions_description');
|
|
132
135
|
return (_jsxs(ScreenContainer, { children: [(title || subTitle) && _jsx(MIDTitle, { show: !listActive, title: title, description: subTitle }), _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(InputsContainerStyled, { children: _jsx(MobileNumber, { show: !isBusinessListActive, countries: settingsStore.data.countries, onListOpen: function () { return handleMenuListClick(ListType.CountryCodeList); }, onListClose: function () { return handleMenuListClick(); } }) }), _jsxs(Collapse, __assign({ in: !listActive }, { children: [_jsx(Button, __assign({ isAr: isAr, onBackClicked: onBackToCountryList, disableBack: !data.isStartFromBusinessCountry, disabled: disabled || settingsStore.loading, loading: loading, error: t(error || '') }, { children: t('next') })), _jsxs(Collapse, __assign({ in: !methods.formState.isValid && !isOtherThanKWOrSACountry }, { children: [_jsxs(OrBoxStyled, { children: [_jsx(DividerStyled, {}), _jsx(TextStyled, { children: t('or') }), _jsx(DividerStyled, {})] }), isKWCountry ? (_jsx(MobileButton, __assign({ disabled: settingsStore.loading || loading, onClick: function () { return onBack(); }, icon: ICONS_NAMES.PACI_ICON }, { children: t('paci_button_label') }))) : (_jsx(AbsherButton, __assign({ disabled: settingsStore.loading || loading, onClick: function () { return onBack(); } }, { children: t('absher_button_label') })))] }))] }))] })) }))] }));
|
|
@@ -101,7 +101,7 @@ var NID = function (_a) {
|
|
|
101
101
|
React.useEffect(function () {
|
|
102
102
|
dispatch(resetStore());
|
|
103
103
|
}, []);
|
|
104
|
-
var disabled = !methods.formState.isValid
|
|
104
|
+
var disabled = !methods.formState.isValid;
|
|
105
105
|
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Collapse, __assign({ in: !collapse }, { children: _jsx(IDNumber, { show: !collapse }) })), _jsx(DOB, { onDateClicked: handleCollapseOpenClose }), _jsxs(Collapse, __assign({ in: !collapse }, { children: [_jsx(Button, __assign({ loading: loading, isAr: isAr, onBackClicked: onBackToCountryList, disableBack: !data.isStartFromBusinessCountry, disabled: disabled || settingsStore.loading, error: t(error || '') }, { children: t('next') })), _jsxs(Collapse, __assign({ in: !methods.formState.isValid }, { children: [_jsxs(OrBoxStyled, { children: [_jsx(DividerStyled, {}), _jsx(TextStyled, { children: t('or') }), _jsx(DividerStyled, {})] }), _jsx(MobileButton, __assign({ onClick: function () { return onBack(); }, disabled: loading || settingsStore.loading }, { children: t('mobile_button_label') }))] }))] }))] })) })) }));
|
|
106
106
|
};
|
|
107
107
|
export default React.memo(NID);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import GenericError from '
|
|
4
|
+
import GenericError from '../../../shared/GenericError';
|
|
5
5
|
var OperatorError = function (_a) {
|
|
6
6
|
var t = useTranslation().t;
|
|
7
7
|
return _jsx(GenericError, { error: t('operator_is_invalid'), errorTitle: t('oops') });
|
|
@@ -99,7 +99,8 @@ var ConnectExpress = memo(function (_a) {
|
|
|
99
99
|
React.useEffect(function () {
|
|
100
100
|
initializeGTM();
|
|
101
101
|
sendPageView({
|
|
102
|
-
title: 'Connect Express'
|
|
102
|
+
title: 'Connect Express',
|
|
103
|
+
connect_flow: 'Express'
|
|
103
104
|
});
|
|
104
105
|
}, []);
|
|
105
106
|
React.useEffect(function () {
|