@tap-payments/auth-jsconnect 1.0.91-test → 1.0.93-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 (90) hide show
  1. package/README.md +58 -52
  2. package/build/@types/app.d.ts +9 -0
  3. package/build/@types/app.js +9 -0
  4. package/build/@types/form.d.ts +2 -0
  5. package/build/app/rootReducer.d.ts +0 -1
  6. package/build/app/rootReducer.js +1 -3
  7. package/build/app/store.d.ts +0 -2
  8. package/build/components/AnimationFlow/BottomSheet.js +1 -1
  9. package/build/constants/app.d.ts +0 -1
  10. package/build/constants/app.js +0 -8
  11. package/build/features/app/bank/bankStore.d.ts +5 -1
  12. package/build/features/app/bank/bankStore.js +38 -1
  13. package/build/features/app/business/businessStore.d.ts +5 -1
  14. package/build/features/app/business/businessStore.js +36 -1
  15. package/build/features/app/connect/connectStore.d.ts +2 -1
  16. package/build/features/app/connect/connectStore.js +14 -5
  17. package/build/features/app/individual/individualStore.d.ts +5 -1
  18. package/build/features/app/individual/individualStore.js +36 -0
  19. package/build/features/app/password/passwordStore.d.ts +5 -1
  20. package/build/features/app/password/passwordStore.js +37 -1
  21. package/build/features/app/tax/taxStore.d.ts +5 -1
  22. package/build/features/app/tax/taxStore.js +39 -2
  23. package/build/features/bank/Bank.js +4 -3
  24. package/build/features/bank/screens/BankDetails/BankDetails.js +2 -1
  25. package/build/features/bank/screens/BankDetails/ConfirmPolicy.d.ts +3 -0
  26. package/build/features/bank/screens/BankDetails/ConfirmPolicy.js +67 -0
  27. package/build/features/bank/screens/BankDetails/validation.d.ts +3 -0
  28. package/build/features/bank/screens/BankDetails/validation.js +2 -1
  29. package/build/features/bank/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
  30. package/build/features/bank/screens/Verify/OTPInput.d.ts +3 -1
  31. package/build/features/bank/screens/Verify/OTPInput.js +6 -1
  32. package/build/features/bank/screens/Verify/Verify.js +3 -2
  33. package/build/features/business/Business.js +4 -3
  34. package/build/features/business/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -1
  35. package/build/features/business/screens/Verify/OTPInput.d.ts +3 -1
  36. package/build/features/business/screens/Verify/OTPInput.js +6 -1
  37. package/build/features/business/screens/Verify/Verify.js +3 -2
  38. package/build/features/connect/Connect.js +5 -3
  39. package/build/features/featuresScreens.d.ts +0 -1
  40. package/build/features/featuresScreens.js +0 -7
  41. package/build/features/individual/Individual.js +4 -3
  42. package/build/features/individual/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
  43. package/build/features/individual/screens/Verify/OTPInput.d.ts +3 -1
  44. package/build/features/individual/screens/Verify/OTPInput.js +6 -1
  45. package/build/features/individual/screens/Verify/Verify.js +3 -2
  46. package/build/features/password/Password.js +4 -3
  47. package/build/features/password/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
  48. package/build/features/password/screens/Verify/OTPInput.d.ts +3 -1
  49. package/build/features/password/screens/Verify/OTPInput.js +6 -1
  50. package/build/features/password/screens/Verify/Verify.js +3 -2
  51. package/build/features/shared/Button/AbsherButton.js +3 -8
  52. package/build/features/shared/Button/EmailProvidersButtons.js +2 -1
  53. package/build/features/shared/Button/FlowsButtons.d.ts +4 -1
  54. package/build/features/shared/Button/FlowsButtons.js +10 -5
  55. package/build/features/shared/Button/MobileButton.js +3 -8
  56. package/build/features/shared/OTP/OTP.d.ts +2 -1
  57. package/build/features/shared/OTP/OTP.js +10 -2
  58. package/build/features/tax/Tax.js +4 -3
  59. package/build/features/tax/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +2 -2
  60. package/build/features/tax/screens/TaxDetails/ConfirmPolicy.d.ts +3 -0
  61. package/build/features/tax/screens/TaxDetails/ConfirmPolicy.js +66 -0
  62. package/build/features/tax/screens/TaxDetails/TaxDetails.js +5 -2
  63. package/build/features/tax/screens/TaxDetails/VATId.js +13 -2
  64. package/build/features/tax/screens/TaxDetails/validation.d.ts +3 -0
  65. package/build/features/tax/screens/TaxDetails/validation.js +2 -1
  66. package/build/features/tax/screens/Verify/OTPInput.d.ts +3 -1
  67. package/build/features/tax/screens/Verify/OTPInput.js +6 -1
  68. package/build/features/tax/screens/Verify/Verify.js +3 -2
  69. package/build/hooks/index.d.ts +1 -0
  70. package/build/hooks/index.js +1 -0
  71. package/build/hooks/useAppDispatch.d.ts +0 -1
  72. package/build/hooks/useErrorListener.d.ts +1 -1
  73. package/build/hooks/useErrorListener.js +4 -6
  74. package/build/hooks/useStepStartedListener.d.ts +1 -0
  75. package/build/hooks/useStepStartedListener.js +10 -0
  76. package/build/index.d.ts +2 -3
  77. package/build/index.js +2 -5
  78. package/build/utils/string.d.ts +1 -0
  79. package/build/utils/string.js +19 -0
  80. package/package.json +127 -127
  81. package/build/features/Landing/Landing.d.ts +0 -7
  82. package/build/features/Landing/Landing.js +0 -55
  83. package/build/features/Landing/index.d.ts +0 -1
  84. package/build/features/Landing/index.js +0 -1
  85. package/build/features/Landing/screens/VerifyAndRedirect/VerifyAndRedirect.d.ts +0 -5
  86. package/build/features/Landing/screens/VerifyAndRedirect/VerifyAndRedirect.js +0 -41
  87. package/build/features/Landing/screens/VerifyAndRedirect/index.d.ts +0 -2
  88. package/build/features/Landing/screens/VerifyAndRedirect/index.js +0 -2
  89. package/build/features/app/landing/landingStore.d.ts +0 -22
  90. package/build/features/app/landing/landingStore.js +0 -103
@@ -11,12 +11,14 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import * as React from 'react';
14
+ import { useAppDispatch } from '../../../../hooks';
14
15
  import Box from '@mui/material/Box/Box';
15
16
  import { styled } from '@mui/material/styles';
16
17
  import OTPField from '../../../shared/OTP';
17
18
  import { useController, useFormContext } from 'react-hook-form';
18
19
  import { useTranslation } from 'react-i18next';
19
20
  import { DEFAULT_TIMER_VALUE } from '../../../../constants';
21
+ import { resendOTP } from '../../../app/individual/individualStore';
20
22
  var BoxStyled = styled(Box)(function (_a) {
21
23
  var theme = _a.theme;
22
24
  return ({
@@ -26,17 +28,20 @@ var BoxStyled = styled(Box)(function (_a) {
26
28
  });
27
29
  });
28
30
  var OTPInput = function (_a) {
31
+ var loading = _a.loading, setLoading = _a.setLoading;
29
32
  var _b = useFormContext(), control = _b.control, setValue = _b.setValue;
30
33
  var t = useTranslation().t;
31
34
  var otpControl = useController({ name: 'otp', control: control });
35
+ var dispatch = useAppDispatch();
32
36
  var handleOnOTPChange = function (otp) {
33
37
  otpControl.field.onChange(otp);
34
38
  };
35
39
  var handleOnResendOTP = function () {
36
40
  if (otpControl.field.value)
37
41
  setValue('otp', '', { shouldValidate: true });
42
+ dispatch(resendOTP());
38
43
  };
39
44
  var otpValue = otpControl.field.value;
40
- return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
45
+ return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { loading: loading, timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
41
46
  };
42
47
  export default React.memo(OTPInput);
@@ -57,6 +57,7 @@ var VerifyNumber = function (_a) {
57
57
  });
58
58
  var t = useTranslation().t;
59
59
  var isAr = useLanguage().isAr;
60
+ var _f = React.useState(false), resendLoading = _f[0], setResendLoading = _f[1];
60
61
  React.useEffect(function () {
61
62
  if (error)
62
63
  dispatch(clearError());
@@ -71,7 +72,7 @@ var VerifyNumber = function (_a) {
71
72
  dispatch(handlePrevScreenStep());
72
73
  };
73
74
  var phone = (_d = (_c = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.contact) === null || _c === void 0 ? void 0 : _c.phone) === null || _d === void 0 ? void 0 : _d.number;
74
- var disabled = !methods.formState.isValid || !!error || !phone;
75
- 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, {}), _jsx(Button, __assign({ disableBack: true, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
75
+ var disabled = !methods.formState.isValid || !!error || !phone || resendLoading;
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, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
76
77
  };
77
78
  export default React.memo(VerifyNumber);
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { memo, useEffect } from 'react';
14
- import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener } from '../../hooks';
14
+ import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener } from '../../hooks';
15
15
  import { handleLanguage, settingsSelector } from '../../app/settings';
16
16
  import AnimationFlow from '../../components/AnimationFlow';
17
17
  import { store } from '../../app/store';
@@ -28,9 +28,10 @@ var Password = memo(function (props) {
28
28
  var theme = useAppTheme().theme;
29
29
  var dispatch = useAppDispatch();
30
30
  var _a = useAppSelector(settingsSelector), data = _a.data, error = _a.error, settingLoading = _a.loading;
31
- var customLoading = useAppSelector(passwordSelector).customLoading;
31
+ var _b = useAppSelector(passwordSelector), customLoading = _b.customLoading, passwordError = _b.error;
32
32
  var loading = useAppConfig(__assign({ navigation: PASSWORD_SCREENS_NAVIGATION }, props)).loading;
33
- useErrorListener();
33
+ useErrorListener(passwordError || error);
34
+ useStepStartedListener();
34
35
  var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open;
35
36
  var verifyToken = function () {
36
37
  var token = getParameterByName('token');
@@ -60,7 +60,6 @@ var SuccessWithFlowButtons = function () {
60
60
  var reMapFlowData = function (flows) {
61
61
  if (flows === void 0) { flows = []; }
62
62
  var images = ICONS_NAMES;
63
- var statuses = [];
64
63
  var mappedFlows = flows.map(function (_a) {
65
64
  var name = _a.name, url = _a.url, status = _a.status;
66
65
  var type = status === 'initiated' ? 'pending' : 'completed';
@@ -79,6 +78,7 @@ var SuccessWithFlowButtons = function () {
79
78
  var src = isCompleted ? "".concat(name, "_green_icon") : "".concat(name, "_filled_icon");
80
79
  var hoverSrc = "".concat(name, "_white_icon");
81
80
  return {
81
+ name: name,
82
82
  title: title,
83
83
  href: url,
84
84
  src: images[src],
@@ -96,6 +96,6 @@ var SuccessWithFlowButtons = function () {
96
96
  if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0)
97
97
  reMapFlowData(flows);
98
98
  }, [flows, isAr]);
99
- return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons }) })] }));
99
+ return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons, flowName: data.flowName }) })] }));
100
100
  };
101
101
  export default memo(SuccessWithFlowButtons);
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
2
  export interface OTPProps {
3
+ loading: boolean;
4
+ setLoading: (flag: boolean) => void;
3
5
  }
4
- declare const _default: React.MemoExoticComponent<({}: OTPProps) => JSX.Element>;
6
+ declare const _default: React.MemoExoticComponent<({ loading, setLoading }: OTPProps) => JSX.Element>;
5
7
  export default _default;
@@ -11,12 +11,14 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import * as React from 'react';
14
+ import { useAppDispatch } from '../../../../hooks';
14
15
  import Box from '@mui/material/Box/Box';
15
16
  import { styled } from '@mui/material/styles';
16
17
  import OTPField from '../../../shared/OTP';
17
18
  import { useController, useFormContext } from 'react-hook-form';
18
19
  import { useTranslation } from 'react-i18next';
19
20
  import { DEFAULT_TIMER_VALUE } from '../../../../constants';
21
+ import { resendOTP } from '../../../app/password/passwordStore';
20
22
  var BoxStyled = styled(Box)(function (_a) {
21
23
  var theme = _a.theme;
22
24
  return ({
@@ -26,17 +28,20 @@ var BoxStyled = styled(Box)(function (_a) {
26
28
  });
27
29
  });
28
30
  var OTPInput = function (_a) {
31
+ var loading = _a.loading, setLoading = _a.setLoading;
29
32
  var _b = useFormContext(), control = _b.control, setValue = _b.setValue;
30
33
  var t = useTranslation().t;
31
34
  var otpControl = useController({ name: 'otp', control: control });
35
+ var dispatch = useAppDispatch();
32
36
  var handleOnOTPChange = function (otp) {
33
37
  otpControl.field.onChange(otp);
34
38
  };
35
39
  var handleOnResendOTP = function () {
36
40
  if (otpControl.field.value)
37
41
  setValue('otp', '', { shouldValidate: true });
42
+ dispatch(resendOTP());
38
43
  };
39
44
  var otpValue = otpControl.field.value;
40
- return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
45
+ return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { loading: loading, timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
41
46
  };
42
47
  export default React.memo(OTPInput);
@@ -57,6 +57,7 @@ var VerifyNumber = function (_a) {
57
57
  });
58
58
  var t = useTranslation().t;
59
59
  var isAr = useLanguage().isAr;
60
+ var _f = React.useState(false), resendLoading = _f[0], setResendLoading = _f[1];
60
61
  React.useEffect(function () {
61
62
  if (error)
62
63
  dispatch(clearError());
@@ -71,7 +72,7 @@ var VerifyNumber = function (_a) {
71
72
  dispatch(handlePrevScreenStep());
72
73
  };
73
74
  var phone = (_d = (_c = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.contact) === null || _c === void 0 ? void 0 : _c.phone) === null || _d === void 0 ? void 0 : _d.number;
74
- var disabled = !methods.formState.isValid || !!error || !phone;
75
- 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, {}), _jsx(Button, __assign({ disableBack: true, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
75
+ var disabled = !methods.formState.isValid || !!error || !phone || resendLoading;
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, onBackClicked: function () { return onBack(); }, disabled: disabled || resendLoading, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
76
77
  };
77
78
  export default React.memo(VerifyNumber);
@@ -33,15 +33,10 @@ var IconStyled = styled(Icon, { shouldForwardProp: function (prop) { return prop
33
33
  })));
34
34
  });
35
35
  var ButtonBoxStyled = styled(Box)(function (_a) {
36
- var _b;
37
36
  var theme = _a.theme;
38
- return (_b = {
39
- margin: theme.spacing(0, 2.5, 2.5, 2.5)
40
- },
41
- _b[theme.breakpoints.down('sm')] = {
42
- margin: theme.spacing(0, 2.5, 0.25, 2.5)
43
- },
44
- _b);
37
+ return ({
38
+ margin: theme.spacing(0, 2.5, 2.5, 2.5)
39
+ });
45
40
  });
46
41
  export default function AbsherButton(_a) {
47
42
  var children = _a.children, hideIcon = _a.hideIcon, disabled = _a.disabled, props = __rest(_a, ["children", "hideIcon", "disabled"]);
@@ -45,7 +45,8 @@ var GMailButtonStyled = styled(Button)(function (_a) {
45
45
  var OutlookButtonStyled = styled(Button)(function (_a) {
46
46
  var theme = _a.theme;
47
47
  return ({
48
- width: '100%'
48
+ width: '100%',
49
+ marginBottom: theme.spacing(2.5)
49
50
  });
50
51
  });
51
52
  var AppleButtonStyled = styled(Button)(function (_a) {
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonProps } from '../../../components/Button';
3
3
  import { SxProps, Theme } from '@mui/material/styles';
4
+ import { FlowsTypes } from '../../../@types';
4
5
  export declare type ButtonItemProps = {
6
+ name: string;
5
7
  title: string;
6
8
  href: string;
7
9
  src: string;
@@ -11,5 +13,6 @@ export declare type ButtonItemProps = {
11
13
  };
12
14
  export interface EmailProvidersButtonsProps extends ButtonProps {
13
15
  buttons: ButtonItemProps[];
16
+ flowName: FlowsTypes;
14
17
  }
15
- export default function FlowsButtons({ buttons }: EmailProvidersButtonsProps): JSX.Element;
18
+ export default function FlowsButtons({ buttons, flowName }: EmailProvidersButtonsProps): JSX.Element;
@@ -17,7 +17,8 @@ import Link from '@mui/material/Link';
17
17
  import { ICONS_NAMES } from '../../../constants';
18
18
  import CheckIcon from '@mui/icons-material/Check';
19
19
  import { useAppDispatch } from '../../../hooks';
20
- import { handleOpen } from '../../../app/settings';
20
+ import { handleOpen, handleCurrentActiveScreen } from '../../../app/settings';
21
+ import { getScreenNameBasedOnFlow } from '../../../utils';
21
22
  var Image = styled('img')(function (_a) {
22
23
  var theme = _a.theme;
23
24
  return ({
@@ -84,21 +85,25 @@ var CheckIconStyled = styled(CheckIcon)(function (_a) {
84
85
  });
85
86
  });
86
87
  export default function FlowsButtons(_a) {
87
- var buttons = _a.buttons;
88
+ var buttons = _a.buttons, flowName = _a.flowName;
88
89
  var dispatch = useAppDispatch();
89
90
  var onRedirect = function (item) {
90
91
  if (item.isCompleted)
91
92
  return;
93
+ if (flowName === item.name && item.name !== 'password') {
94
+ dispatch(handleCurrentActiveScreen(getScreenNameBasedOnFlow(item.name)));
95
+ return;
96
+ }
92
97
  dispatch(handleOpen(false));
93
98
  setTimeout(function () {
94
99
  window.location.href = item.href;
95
100
  }, 500);
96
101
  };
97
102
  return (_jsx(ButtonBoxStyled, { children: buttons.map(function (_a, idx) {
98
- var title = _a.title, href = _a.href, src = _a.src, hoverSrc = _a.hoverSrc, isCompleted = _a.isCompleted, sx = _a.sx;
103
+ var title = _a.title, href = _a.href, src = _a.src, hoverSrc = _a.hoverSrc, isCompleted = _a.isCompleted, sx = _a.sx, name = _a.name;
99
104
  var isLast = idx === buttons.length - 1;
100
105
  return (_jsx(Link, __assign({ underline: 'none', onClick: function () {
101
- onRedirect({ title: title, href: href, src: src, hoverSrc: hoverSrc, isCompleted: isCompleted });
102
- } }, { children: _jsx(ButtonStyled, __assign({ variant: 'outlined', isCompleted: isCompleted, sx: __assign({ mb: isLast ? 0 : 1.8 }, sx), endIcon: isCompleted ? (_jsx(CheckIconStyled, {})) : (_jsx(Image, { sx: { height: 15, transform: 'unset' }, src: ICONS_NAMES.Arrow_filled_right_icon })), startIcon: _jsx(Image, { src: src, alt: title }), type: 'button' }, { children: title })) }), idx));
106
+ onRedirect({ title: title, href: href, src: src, hoverSrc: hoverSrc, isCompleted: isCompleted, name: name });
107
+ } }, { children: _jsx(ButtonStyled, __assign({ variant: 'outlined', isCompleted: isCompleted, sx: __assign({ mb: isLast ? 2.5 : 1.8 }, sx), endIcon: isCompleted ? (_jsx(CheckIconStyled, {})) : (_jsx(Image, { sx: { height: 15, transform: 'unset' }, src: ICONS_NAMES.Arrow_filled_right_icon })), startIcon: _jsx(Image, { src: src, alt: title }), type: 'button' }, { children: title })) }), idx));
103
108
  }) }));
104
109
  }
@@ -33,15 +33,10 @@ var IconStyled = styled(Icon, { shouldForwardProp: function (prop) { return prop
33
33
  })));
34
34
  });
35
35
  var ButtonBoxStyled = styled(Box)(function (_a) {
36
- var _b;
37
36
  var theme = _a.theme;
38
- return (_b = {
39
- margin: theme.spacing(0, 2.5, 2.5, 2.5)
40
- },
41
- _b[theme.breakpoints.down('sm')] = {
42
- margin: theme.spacing(0, 2.5, 0.25, 2.5)
43
- },
44
- _b);
37
+ return ({
38
+ margin: theme.spacing(0, 2.5, 2.5, 2.5)
39
+ });
45
40
  });
46
41
  export default function MobileButton(_a) {
47
42
  var children = _a.children, hideIcon = _a.hideIcon, disabled = _a.disabled, props = __rest(_a, ["children", "hideIcon", "disabled"]);
@@ -4,6 +4,7 @@ interface OTPProps extends OTPFieldProps {
4
4
  timerInSeconds?: number;
5
5
  onResetClick?: () => void;
6
6
  timeEndLabel?: string;
7
+ loading?: boolean;
7
8
  }
8
- declare const _default: React.MemoExoticComponent<({ timeEndLabel, timerInSeconds, onResetClick, ...props }: OTPProps) => JSX.Element>;
9
+ declare const _default: React.MemoExoticComponent<({ timeEndLabel, loading, timerInSeconds, onResetClick, ...props }: OTPProps) => JSX.Element>;
9
10
  export default _default;
@@ -24,6 +24,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
24
24
  import * as React from 'react';
25
25
  import { styled } from '@mui/material/styles';
26
26
  import Box from '@mui/material/Box/Box';
27
+ import CircularProgress from '@mui/material/CircularProgress';
27
28
  import OTPField from '../../../components/OTPField';
28
29
  import OTPTimer from '../../../components/OTPTimer';
29
30
  import { useContainerDimensions } from '../../../hooks';
@@ -71,8 +72,15 @@ var OTPBox = styled(Box)(function (_a) {
71
72
  },
72
73
  _b);
73
74
  });
75
+ var LoaderBoxStyled = styled(OTPBox)(function (_a) {
76
+ var theme = _a.theme;
77
+ return ({
78
+ display: 'flex',
79
+ justifyContent: 'end'
80
+ });
81
+ });
74
82
  var OTPInput = function (_a) {
75
- var timeEndLabel = _a.timeEndLabel, timerInSeconds = _a.timerInSeconds, onResetClick = _a.onResetClick, props = __rest(_a, ["timeEndLabel", "timerInSeconds", "onResetClick"]);
83
+ var timeEndLabel = _a.timeEndLabel, loading = _a.loading, timerInSeconds = _a.timerInSeconds, onResetClick = _a.onResetClick, props = __rest(_a, ["timeEndLabel", "loading", "timerInSeconds", "onResetClick"]);
76
84
  var otpRef = React.useRef(null);
77
85
  var width = useContainerDimensions(otpRef).width;
78
86
  React.useEffect(function () {
@@ -80,6 +88,6 @@ var OTPInput = function (_a) {
80
88
  if (el)
81
89
  el.className = 'middle-input-element';
82
90
  }, [props.value]);
83
- return (_jsxs(_Fragment, { children: [_jsx(OTPBox, __assign({ id: 'otp-container', ref: otpRef }, { children: _jsx(OTPStyled, __assign({}, props, { parentWidth: width })) })), typeof timerInSeconds != 'undefined' && (_jsx(BoxStyled, { children: _jsx(OTPTimer, { timeEndLabel: timeEndLabel || '', timeInSeconds: timerInSeconds, onResetClick: onResetClick }) }))] }));
91
+ return (_jsxs(_Fragment, { children: [_jsx(OTPBox, __assign({ id: 'otp-container', ref: otpRef }, { children: _jsx(OTPStyled, __assign({}, props, { parentWidth: width })) })), typeof timerInSeconds != 'undefined' && (_jsx(BoxStyled, { children: loading ? (_jsx(LoaderBoxStyled, { children: _jsx(CircularProgress, { size: 20, thickness: 5 }) })) : (_jsx(OTPTimer, { timeEndLabel: timeEndLabel || '', timeInSeconds: timerInSeconds, onResetClick: onResetClick })) }))] }));
84
92
  };
85
93
  export default React.memo(OTPInput);
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { memo, useEffect } from 'react';
14
- import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener } from '../../hooks';
14
+ import { useAppTheme, useAppDispatch, useAppSelector, useAppConfig, useErrorListener, useStepStartedListener } from '../../hooks';
15
15
  import { handleLanguage, settingsSelector } from '../../app/settings';
16
16
  import AnimationFlow from '../../components/AnimationFlow';
17
17
  import { store } from '../../app/store';
@@ -28,9 +28,10 @@ var Tax = memo(function (props) {
28
28
  var theme = useAppTheme().theme;
29
29
  var dispatch = useAppDispatch();
30
30
  var _a = useAppSelector(settingsSelector), data = _a.data, error = _a.error, settingLoading = _a.loading;
31
- var customLoading = useAppSelector(taxSelector).customLoading;
31
+ var _b = useAppSelector(taxSelector), customLoading = _b.customLoading, taxError = _b.error;
32
32
  var loading = useAppConfig(__assign({ navigation: TAX_SCREENS_NAVIGATION }, props)).loading;
33
- useErrorListener();
33
+ useErrorListener(taxError || error);
34
+ useStepStartedListener();
34
35
  var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open;
35
36
  var verifyToken = function () {
36
37
  var token = getParameterByName('token');
@@ -60,7 +60,6 @@ var SuccessWithFlowButtons = function () {
60
60
  var reMapFlowData = function (flows) {
61
61
  if (flows === void 0) { flows = []; }
62
62
  var images = ICONS_NAMES;
63
- var statuses = [];
64
63
  var mappedFlows = flows.map(function (_a) {
65
64
  var name = _a.name, url = _a.url, status = _a.status;
66
65
  var type = status === 'initiated' ? 'pending' : 'completed';
@@ -79,6 +78,7 @@ var SuccessWithFlowButtons = function () {
79
78
  var src = isCompleted ? "".concat(name, "_green_icon") : "".concat(name, "_filled_icon");
80
79
  var hoverSrc = "".concat(name, "_white_icon");
81
80
  return {
81
+ name: name,
82
82
  title: title,
83
83
  href: url,
84
84
  src: images[src],
@@ -96,6 +96,6 @@ var SuccessWithFlowButtons = function () {
96
96
  if ((flows === null || flows === void 0 ? void 0 : flows.length) > 0)
97
97
  reMapFlowData(flows);
98
98
  }, [flows, isAr]);
99
- return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons }) })] }));
99
+ return (_jsxs(ContainerStyled, { children: [_jsxs(TitleStyled, { children: [t('account_details'), " "] }), _jsx(AcceptancePayouts, { showAcceptance: isAcceptance, showPayout: isPayout }), _jsx(ButtonGroupStyled, { children: _jsx(FlowsButtons, { buttons: buttons, flowName: data.flowName }) })] }));
100
100
  };
101
101
  export default memo(SuccessWithFlowButtons);
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const ConfirmPolicy: () => JSX.Element;
3
+ export default ConfirmPolicy;
@@ -0,0 +1,66 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { useTranslation } from 'react-i18next';
14
+ import { useController, useFormContext } from 'react-hook-form';
15
+ import { styled, alpha } from '@mui/material/styles';
16
+ import { ScreenContainer } from '../../../shared/Containers';
17
+ import Box from '@mui/material/Box';
18
+ import CheckBox from '../../../../components/CheckBox';
19
+ import Text from '../../../../components/Text';
20
+ import Warning from '../../../../components/Warning';
21
+ import Collapse from '../../../../components/Collapse';
22
+ var ConfirmContainerStyled = styled(Box)(function (_a) {
23
+ var theme = _a.theme;
24
+ return ({
25
+ display: 'flex',
26
+ flexDirection: 'row',
27
+ alignItems: 'center',
28
+ padding: theme.spacing(0, 2.5, 0, 2.5)
29
+ });
30
+ });
31
+ var TextStyled = styled(Text)(function (_a) {
32
+ var theme = _a.theme;
33
+ return (__assign({ color: alpha(theme.palette.text.primary, 0.4), fontWeight: theme.typography.fontWeightLight, whiteSpace: 'pre-line', height: 'fit-content' }, theme.typography.body2));
34
+ });
35
+ var CheckboxStyled = styled(CheckBox)(function (_a) {
36
+ var theme = _a.theme;
37
+ return ({
38
+ margin: theme.spacing(0),
39
+ padding: theme.spacing(0),
40
+ marginInlineEnd: theme.spacing(1.5),
41
+ color: theme.palette.primary.main,
42
+ '& .MuiSvgIcon-root': {
43
+ fontSize: theme.spacing(3.75)
44
+ },
45
+ '&.Mui-checked': {
46
+ color: theme.palette.text.primary,
47
+ borderRadius: theme.spacing(2.5)
48
+ }
49
+ });
50
+ });
51
+ var CollapseStyled = styled(Collapse)(function () { return ({
52
+ width: '100%'
53
+ }); });
54
+ var ConfirmPolicy = function () {
55
+ var _a;
56
+ var t = useTranslation().t;
57
+ var control = useFormContext().control;
58
+ var confirmControl = useController({ control: control, name: 'confirmPolicy' });
59
+ var confirmChecked = confirmControl.field.value;
60
+ var warningMessage = (_a = confirmControl.fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
61
+ var handleConfirmCheckedChange = function (event, checked) {
62
+ confirmControl.field.onChange(checked);
63
+ };
64
+ return (_jsxs(ScreenContainer, { children: [_jsxs(ConfirmContainerStyled, { children: [_jsx(CheckboxStyled, { disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: confirmChecked, onChange: handleConfirmCheckedChange }), _jsx(TextStyled, { children: t('tax_confirm_information') })] }), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] }));
65
+ };
66
+ export default ConfirmPolicy;
@@ -22,9 +22,12 @@ import { yupResolver } from '@hookform/resolvers/yup';
22
22
  import { taxSelector, updateTaxInfo } from '../../../app/tax/taxStore';
23
23
  import { handleCurrentActiveScreen } from '../../../../app/settings';
24
24
  import VATId from './VATId';
25
+ import ConfirmPolicy from './ConfirmPolicy';
25
26
  var FormStyled = styled(Form)(function () { return ({
27
+ height: '100%',
26
28
  display: 'flex',
27
- flexDirection: 'column'
29
+ flexDirection: 'column',
30
+ justifyContent: 'space-between'
28
31
  }); });
29
32
  var TaxDetails = function () {
30
33
  var dispatch = useAppDispatch();
@@ -42,6 +45,6 @@ var TaxDetails = function () {
42
45
  var onBack = function () {
43
46
  dispatch(handleCurrentActiveScreen('TAX_SUCCESS_FOUR_FLOWS_BUTTONS_STEP'));
44
47
  };
45
- return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(VATId, {}), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: !methods.formState.isValid, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
48
+ return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(VATId, {}), _jsx(ConfirmPolicy, {}), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: !methods.formState.isValid, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
46
49
  };
47
50
  export default TaxDetails;
@@ -1,5 +1,16 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { FeatureContainer } from '../../../shared/Containers';
13
+ import Box from '@mui/material/Box';
3
14
  import Input from '../../../shared/Input';
4
15
  import { useTranslation } from 'react-i18next';
5
16
  import { useController, useFormContext } from 'react-hook-form';
@@ -21,6 +32,6 @@ var VATId = function () {
21
32
  var clearValue = function () {
22
33
  vatControl.field.onChange('');
23
34
  };
24
- return (_jsx(FeatureContainer, { children: _jsx(Input, { label: t('vat_id'), inputProps: { maxLength: VAT_ID_LENGTH }, value: vatValue, onChange: function (event) { return handleOnChange(event.target.value); }, placeholder: '00000000000', warningType: 'alert', warningMessage: vatError && t(vatError), required: true, endAdornment: !vatError && vatValue ? _jsx(CheckIcon, {}) : vatValue && _jsx(ClearIcon, { onClick: clearValue }) }) }));
35
+ return (_jsx(Box, __assign({ sx: { height: '200px' } }, { children: _jsx(Input, { label: t('vat_id'), inputProps: { maxLength: VAT_ID_LENGTH }, value: vatValue, onChange: function (event) { return handleOnChange(event.target.value); }, placeholder: t('vat_id_placeholder'), warningType: 'alert', warningMessage: vatError && t(vatError), required: true, endAdornment: !vatError && vatValue ? _jsx(CheckIcon, {}) : vatValue && _jsx(ClearIcon, { onClick: clearValue }) }) })));
25
36
  };
26
37
  export default VATId;
@@ -1,8 +1,11 @@
1
1
  import * as yup from 'yup';
2
2
  export declare const Validation: yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
3
3
  vatId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
4
+ confirmPolicy: yup.BooleanSchema<boolean | undefined, import("yup/lib/types").AnyObject, true>;
4
5
  }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
5
6
  vatId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
7
+ confirmPolicy: yup.BooleanSchema<boolean | undefined, import("yup/lib/types").AnyObject, true>;
6
8
  }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
7
9
  vatId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
10
+ confirmPolicy: yup.BooleanSchema<boolean | undefined, import("yup/lib/types").AnyObject, true>;
8
11
  }>>>;
@@ -1,4 +1,5 @@
1
1
  import * as yup from 'yup';
2
2
  export var Validation = yup.object().shape({
3
- vatId: yup.string().min(9, 'alert_vat').max(15, 'alert_vat').required('alert_vat')
3
+ vatId: yup.string().min(9, 'alert_vat').max(15, 'alert_vat').required('alert_vat'),
4
+ confirmPolicy: yup.boolean().required('alert_tax_confirm').isTrue('alert_tax_confirm')
4
5
  });
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
2
  export interface OTPProps {
3
+ loading: boolean;
4
+ setLoading: (flag: boolean) => void;
3
5
  }
4
- declare const _default: React.MemoExoticComponent<({}: OTPProps) => JSX.Element>;
6
+ declare const _default: React.MemoExoticComponent<({ loading, setLoading }: OTPProps) => JSX.Element>;
5
7
  export default _default;
@@ -11,12 +11,14 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import * as React from 'react';
14
+ import { useAppDispatch } from '../../../../hooks';
14
15
  import Box from '@mui/material/Box/Box';
15
16
  import { styled } from '@mui/material/styles';
16
17
  import OTPField from '../../../shared/OTP';
17
18
  import { useController, useFormContext } from 'react-hook-form';
18
19
  import { useTranslation } from 'react-i18next';
19
20
  import { DEFAULT_TIMER_VALUE } from '../../../../constants';
21
+ import { resendOTP } from '../../../app/tax/taxStore';
20
22
  var BoxStyled = styled(Box)(function (_a) {
21
23
  var theme = _a.theme;
22
24
  return ({
@@ -26,17 +28,20 @@ var BoxStyled = styled(Box)(function (_a) {
26
28
  });
27
29
  });
28
30
  var OTPInput = function (_a) {
31
+ var loading = _a.loading, setLoading = _a.setLoading;
29
32
  var _b = useFormContext(), control = _b.control, setValue = _b.setValue;
30
33
  var t = useTranslation().t;
31
34
  var otpControl = useController({ name: 'otp', control: control });
35
+ var dispatch = useAppDispatch();
32
36
  var handleOnOTPChange = function (otp) {
33
37
  otpControl.field.onChange(otp);
34
38
  };
35
39
  var handleOnResendOTP = function () {
36
40
  if (otpControl.field.value)
37
41
  setValue('otp', '', { shouldValidate: true });
42
+ dispatch(resendOTP());
38
43
  };
39
44
  var otpValue = otpControl.field.value;
40
- return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
45
+ return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { loading: loading, timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
41
46
  };
42
47
  export default React.memo(OTPInput);
@@ -57,6 +57,7 @@ var VerifyNumber = function (_a) {
57
57
  });
58
58
  var t = useTranslation().t;
59
59
  var isAr = useLanguage().isAr;
60
+ var _f = React.useState(false), resendLoading = _f[0], setResendLoading = _f[1];
60
61
  React.useEffect(function () {
61
62
  if (error)
62
63
  dispatch(clearError());
@@ -71,7 +72,7 @@ var VerifyNumber = function (_a) {
71
72
  dispatch(handlePrevScreenStep());
72
73
  };
73
74
  var phone = (_d = (_c = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.contact) === null || _c === void 0 ? void 0 : _c.phone) === null || _d === void 0 ? void 0 : _d.number;
74
- var disabled = !methods.formState.isValid || !!error || !phone;
75
- 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, {}), _jsx(Button, __assign({ disableBack: true, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
75
+ var disabled = !methods.formState.isValid || !!error || !phone || resendLoading;
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, onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
76
77
  };
77
78
  export default React.memo(VerifyNumber);
@@ -9,3 +9,4 @@ export * from './useContainerDimensions';
9
9
  export * from './useAppConfig';
10
10
  export * from './useErrorListener';
11
11
  export * from './useWindowSize';
12
+ export * from './useStepStartedListener';
@@ -9,3 +9,4 @@ export * from './useContainerDimensions';
9
9
  export * from './useAppConfig';
10
10
  export * from './useErrorListener';
11
11
  export * from './useWindowSize';
12
+ export * from './useStepStartedListener';
@@ -6,5 +6,4 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<{
6
6
  tax: import("../features/app/tax/taxStore").TaxState;
7
7
  individual: import("../features/app/individual/individualStore").IndividualState;
8
8
  password: import("../features/app/password/passwordStore").PasswordState;
9
- landing: import("../features/app/landing/landingStore").LandingState;
10
9
  }, undefined, import("redux").AnyAction> & import("redux").Dispatch<import("redux").AnyAction>;
@@ -1 +1 @@
1
- export declare const useErrorListener: () => void;
1
+ export declare const useErrorListener: (error?: string | null) => void;