@os1-platform/dispatch-mobile 3.0.3 → 3.1.0

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 (223) hide show
  1. package/android/build.gradle +38 -9
  2. package/android/gradle.properties +17 -2
  3. package/lib/commonjs/components/dispatch/DispatchExecNavigator.js.map +1 -1
  4. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  5. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +1 -1
  6. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  7. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +467 -287
  8. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  9. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js +14 -1
  10. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
  11. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOtpStyles.js +272 -0
  12. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOtpStyles.js.map +1 -0
  13. package/lib/commonjs/components/executiontasks/validateOTP/components/ContactListView.js +99 -0
  14. package/lib/commonjs/components/executiontasks/validateOTP/components/ContactListView.js.map +1 -0
  15. package/lib/commonjs/components/executiontasks/validateOTP/components/OTPView.js +195 -0
  16. package/lib/commonjs/components/executiontasks/validateOTP/components/OTPView.js.map +1 -0
  17. package/lib/commonjs/components/executiontasks/validateOTP/components/VerificationComplete.js +106 -0
  18. package/lib/commonjs/components/executiontasks/validateOTP/components/VerificationComplete.js.map +1 -0
  19. package/lib/commonjs/components/executiontasks/validateOTP/constants.js +12 -5
  20. package/lib/commonjs/components/executiontasks/validateOTP/constants.js.map +1 -1
  21. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ContactCard.js +68 -0
  22. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ContactCard.js.map +1 -0
  23. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js +12 -5
  24. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  25. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js +61 -0
  26. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js.map +1 -0
  27. package/lib/commonjs/components/executiontasks/validateOTP/utils.js +235 -114
  28. package/lib/commonjs/components/executiontasks/validateOTP/utils.js.map +1 -1
  29. package/lib/commonjs/components/utils/Scale.js +22 -0
  30. package/lib/commonjs/components/utils/Scale.js.map +1 -0
  31. package/lib/commonjs/components/widgets/ConfirmCancelModal.js +47 -0
  32. package/lib/commonjs/components/widgets/ConfirmCancelModal.js.map +1 -0
  33. package/lib/commonjs/components/widgets/SnackBarCustom.js +36 -4
  34. package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
  35. package/lib/commonjs/components/widgets/SplitTextInput.js +48 -18
  36. package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
  37. package/lib/commonjs/constants/apiConstants.js +4 -1
  38. package/lib/commonjs/constants/apiConstants.js.map +1 -1
  39. package/lib/commonjs/constants/constants.js +2 -1
  40. package/lib/commonjs/constants/constants.js.map +1 -1
  41. package/lib/commonjs/icons/icExclamationcircleo_dark.svg +3 -0
  42. package/lib/commonjs/icons/icFailed.gif +0 -0
  43. package/lib/commonjs/icons/icRadioChecked.svg +4 -0
  44. package/lib/commonjs/icons/icRadioUnchecked.svg +4 -0
  45. package/lib/commonjs/icons/icSuccess.gif +0 -0
  46. package/lib/commonjs/icons/index.js +28 -0
  47. package/lib/commonjs/icons/index.js.map +1 -0
  48. package/lib/commonjs/index.js +19 -0
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +5 -4
  51. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  52. package/lib/commonjs/manager/sdk/callbacksHandler.js +9 -2
  53. package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
  54. package/lib/commonjs/manager/syncmanager/AppSyncManager.js +1 -4
  55. package/lib/commonjs/manager/syncmanager/AppSyncManager.js.map +1 -1
  56. package/lib/commonjs/manager/syncmanager/constants.js +3 -1
  57. package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
  58. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  59. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  60. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  61. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  62. package/lib/commonjs/models/sdk.js +1 -0
  63. package/lib/commonjs/models/sdk.js.map +1 -1
  64. package/lib/commonjs/ui/screens/ValidateOTPScreen.js +132 -12
  65. package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
  66. package/lib/commonjs/utils/ApiUtils.js +122 -3
  67. package/lib/commonjs/utils/ApiUtils.js.map +1 -1
  68. package/lib/commonjs/utils/ExecTaskUtils.js +67 -7
  69. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  70. package/lib/commonjs/utils/context/valdiateOTPContext.js +11 -0
  71. package/lib/commonjs/utils/context/valdiateOTPContext.js.map +1 -0
  72. package/lib/commonjs/utils/helper.js.map +1 -1
  73. package/lib/commonjs/utils/hooks/useTimer.js +68 -30
  74. package/lib/commonjs/utils/hooks/useTimer.js.map +1 -1
  75. package/lib/module/components/dispatch/DispatchExecNavigator.js.map +1 -1
  76. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  77. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +1 -1
  78. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  79. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +480 -290
  80. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  81. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js +14 -0
  82. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
  83. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js +266 -0
  84. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js.map +1 -0
  85. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js +88 -0
  86. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js.map +1 -0
  87. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js +194 -0
  88. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js.map +1 -0
  89. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js +96 -0
  90. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js.map +1 -0
  91. package/lib/module/components/executiontasks/validateOTP/constants.js +11 -4
  92. package/lib/module/components/executiontasks/validateOTP/constants.js.map +1 -1
  93. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js +59 -0
  94. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js.map +1 -0
  95. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js +11 -5
  96. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  97. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js +52 -0
  98. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js.map +1 -0
  99. package/lib/module/components/executiontasks/validateOTP/utils.js +219 -108
  100. package/lib/module/components/executiontasks/validateOTP/utils.js.map +1 -1
  101. package/lib/module/components/utils/Scale.js +14 -0
  102. package/lib/module/components/utils/Scale.js.map +1 -0
  103. package/lib/module/components/widgets/ConfirmCancelModal.js +40 -0
  104. package/lib/module/components/widgets/ConfirmCancelModal.js.map +1 -0
  105. package/lib/module/components/widgets/SnackBarCustom.js +36 -4
  106. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  107. package/lib/module/components/widgets/SplitTextInput.js +48 -19
  108. package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
  109. package/lib/module/constants/apiConstants.js +4 -1
  110. package/lib/module/constants/apiConstants.js.map +1 -1
  111. package/lib/module/constants/constants.js +1 -0
  112. package/lib/module/constants/constants.js.map +1 -1
  113. package/lib/module/icons/icExclamationcircleo_dark.svg +3 -0
  114. package/lib/module/icons/icFailed.gif +0 -0
  115. package/lib/module/icons/icRadioChecked.svg +4 -0
  116. package/lib/module/icons/icRadioUnchecked.svg +4 -0
  117. package/lib/module/icons/icSuccess.gif +0 -0
  118. package/lib/module/icons/index.js +5 -0
  119. package/lib/module/icons/index.js.map +1 -0
  120. package/lib/module/index.js +2 -0
  121. package/lib/module/index.js.map +1 -1
  122. package/lib/module/manager/sdk/DispatchSDKManager.js +5 -3
  123. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  124. package/lib/module/manager/sdk/callbacksHandler.js +12 -3
  125. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  126. package/lib/module/manager/syncmanager/AppSyncManager.js +1 -4
  127. package/lib/module/manager/syncmanager/AppSyncManager.js.map +1 -1
  128. package/lib/module/manager/syncmanager/constants.js +2 -0
  129. package/lib/module/manager/syncmanager/constants.js.map +1 -1
  130. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  131. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  132. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  133. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  134. package/lib/module/models/sdk.js +2 -0
  135. package/lib/module/models/sdk.js.map +1 -1
  136. package/lib/module/ui/screens/ValidateOTPScreen.js +139 -11
  137. package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
  138. package/lib/module/utils/ApiUtils.js +118 -2
  139. package/lib/module/utils/ApiUtils.js.map +1 -1
  140. package/lib/module/utils/ExecTaskUtils.js +66 -7
  141. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  142. package/lib/module/utils/context/valdiateOTPContext.js +4 -0
  143. package/lib/module/utils/context/valdiateOTPContext.js.map +1 -0
  144. package/lib/module/utils/helper.js +1 -0
  145. package/lib/module/utils/helper.js.map +1 -1
  146. package/lib/module/utils/hooks/useTimer.js +67 -30
  147. package/lib/module/utils/hooks/useTimer.js.map +1 -1
  148. package/lib/typescript/components/executiontasks/collectPayment/PaymentStyles.d.ts +3 -3
  149. package/lib/typescript/components/executiontasks/deliver/DeliverETInput.d.ts +0 -1
  150. package/lib/typescript/components/executiontasks/scan/modalConstant.d.ts +0 -1
  151. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPET.d.ts +3 -3
  152. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPSchema.d.ts +169 -5
  153. package/lib/typescript/components/executiontasks/validateOTP/ValidateOtpStyles.d.ts +257 -0
  154. package/lib/typescript/components/executiontasks/validateOTP/components/ContactListView.d.ts +3 -0
  155. package/lib/typescript/components/executiontasks/validateOTP/components/OTPView.d.ts +3 -0
  156. package/lib/typescript/components/executiontasks/validateOTP/components/VerificationComplete.d.ts +3 -0
  157. package/lib/typescript/components/executiontasks/validateOTP/constants.d.ts +11 -4
  158. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ContactCard.d.ts +8 -0
  159. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ResendOTPButton.d.ts +12 -0
  160. package/lib/typescript/components/executiontasks/validateOTP/utils.d.ts +31 -7
  161. package/lib/typescript/components/utils/Scale.d.ts +4 -0
  162. package/lib/typescript/components/widgets/ConfirmCancelModal.d.ts +9 -0
  163. package/lib/typescript/components/widgets/SnackBarCustom.d.ts +4 -8
  164. package/lib/typescript/components/widgets/SplitTextInput.d.ts +1 -1
  165. package/lib/typescript/components/widgets/Timer.d.ts +3 -3
  166. package/lib/typescript/constants/apiConstants.d.ts +3 -0
  167. package/lib/typescript/constants/constants.d.ts +1 -0
  168. package/lib/typescript/icons/index.d.ts +4 -0
  169. package/lib/typescript/index.d.ts +2 -0
  170. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +4 -1
  171. package/lib/typescript/manager/syncmanager/constants.d.ts +2 -0
  172. package/lib/typescript/models/execTasks/ETConfig.d.ts +1 -1
  173. package/lib/typescript/models/sdk.d.ts +3 -0
  174. package/lib/typescript/network/GraphQLClient.d.ts +4 -4
  175. package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +2 -2
  176. package/lib/typescript/ui/screens/HttpRequestScreen.d.ts +0 -1
  177. package/lib/typescript/utils/ApiUtils.d.ts +6 -2
  178. package/lib/typescript/utils/ExecTaskUtils.d.ts +1 -0
  179. package/lib/typescript/utils/context/paymentContext.d.ts +0 -1
  180. package/lib/typescript/utils/context/valdiateOTPContext.d.ts +6 -0
  181. package/lib/typescript/utils/hooks/useModal.d.ts +0 -2
  182. package/lib/typescript/utils/hooks/useTimer.d.ts +7 -5
  183. package/package.json +46 -44
  184. package/src/components/dispatch/DispatchExecNavigator.tsx +1 -1
  185. package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +2 -2
  186. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +1 -1
  187. package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +654 -381
  188. package/src/components/executiontasks/validateOTP/ValidateOTPSchema.ts +193 -8
  189. package/src/components/executiontasks/validateOTP/ValidateOtpStyles.ts +298 -0
  190. package/src/components/executiontasks/validateOTP/components/ContactListView.tsx +109 -0
  191. package/src/components/executiontasks/validateOTP/components/OTPView.tsx +216 -0
  192. package/src/components/executiontasks/validateOTP/components/VerificationComplete.tsx +124 -0
  193. package/src/components/executiontasks/validateOTP/constants.ts +11 -4
  194. package/src/components/executiontasks/validateOTP/sub-components/ContactCard.tsx +72 -0
  195. package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +13 -7
  196. package/src/components/executiontasks/validateOTP/sub-components/ResendOTPButton.tsx +86 -0
  197. package/src/components/executiontasks/validateOTP/utils.ts +313 -143
  198. package/src/components/utils/Scale.ts +13 -0
  199. package/src/components/widgets/ConfirmCancelModal.tsx +49 -0
  200. package/src/components/widgets/SnackBarCustom.tsx +37 -13
  201. package/src/components/widgets/SplitTextInput.tsx +58 -21
  202. package/src/constants/apiConstants.ts +3 -0
  203. package/src/constants/constants.ts +2 -2
  204. package/src/icons/icExclamationcircleo_dark.svg +3 -0
  205. package/src/icons/icFailed.gif +0 -0
  206. package/src/icons/icRadioChecked.svg +4 -0
  207. package/src/icons/icRadioUnchecked.svg +4 -0
  208. package/src/icons/icSuccess.gif +0 -0
  209. package/src/icons/index.ts +5 -0
  210. package/src/index.tsx +2 -0
  211. package/src/manager/sdk/DispatchSDKManager.ts +6 -5
  212. package/src/manager/sdk/callbacksHandler.ts +29 -12
  213. package/src/manager/syncmanager/AppSyncManager.ts +4 -7
  214. package/src/manager/syncmanager/constants.ts +2 -0
  215. package/src/manager/syncmanager/document/DocumentHttpClient.ts +29 -29
  216. package/src/manager/syncmanager/document/DocumentSyncManager.ts +75 -84
  217. package/src/models/sdk.ts +6 -0
  218. package/src/ui/screens/ValidateOTPScreen.tsx +194 -32
  219. package/src/utils/ApiUtils.ts +131 -3
  220. package/src/utils/ExecTaskUtils.ts +77 -15
  221. package/src/utils/context/valdiateOTPContext.ts +9 -0
  222. package/src/utils/helper.ts +0 -1
  223. package/src/utils/hooks/useTimer.ts +94 -36
@@ -4,359 +4,539 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _reactNative = require("react-native");
8
7
  var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
9
  var _reactNativePaper = require("react-native-paper");
10
- var _reactNativeSvg = require("react-native-svg");
11
- var _OTPInput = _interopRequireDefault(require("./sub-components/OTPInput"));
12
- var _useTimer = _interopRequireDefault(require("../../../utils/hooks/useTimer"));
13
- var _CommonStyles = require("../../../styles/executionTasks/CommonStyles");
14
- var _utils = require("./utils");
15
- var _constants = require("./constants");
16
- var _ETConfig = require("../../../models/execTasks/ETConfig");
17
10
  var _ExecTaskUtils = require("../../../utils/ExecTaskUtils");
11
+ var _utils = require("../../../components/utils");
12
+ var _utils2 = require("./utils");
18
13
  var _EventCodeContainer = require("../../../manager/dispatchCodes/EventCodeContainer");
14
+ var _ETConfig = require("../../../models/execTasks/ETConfig");
15
+ var _valdiateOTPContext = require("../../../utils/context/valdiateOTPContext");
16
+ var _ValidateOTPSchema = require("./ValidateOTPSchema");
17
+ var _constants = require("../../../constants/constants");
18
+ var _constants2 = require("./constants");
19
19
  var _SnackBarCustom = _interopRequireWildcard(require("../../../components/widgets/SnackBarCustom"));
20
- var _MaterialIcons = _interopRequireDefault(require("react-native-vector-icons/MaterialIcons"));
21
- var _constants2 = require("../../../constants/constants");
22
- var _utils2 = require("../../../components/utils");
23
20
  var _GoBackModal = _interopRequireDefault(require("../../../components/widgets/GoBackModal"));
24
- var _native = require("@react-navigation/native");
21
+ var _ConfirmCancelModal = _interopRequireDefault(require("../../../components/widgets/ConfirmCancelModal"));
22
+ var _OTPView = require("./components/OTPView");
23
+ var _ContactListView = require("./components/ContactListView");
24
+ var _VerificationComplete = _interopRequireDefault(require("./components/VerificationComplete"));
25
+ var _ProgressDialog = _interopRequireDefault(require("../../widgets/ProgressDialog"));
26
+ var _ValidateOtpStyles = _interopRequireDefault(require("./ValidateOtpStyles"));
27
+ var _CommonStyles = require("../../../styles/executionTasks/CommonStyles");
25
28
  var _SentrySdkConstants = require("../../../analytics/sentry/SentrySdkConstants");
26
29
  var _SentryAnalyticsUtils = require("../../../analytics/sentry/SentryAnalyticsUtils");
27
30
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
28
31
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
29
32
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
33
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable react-native/no-inline-styles */ // External Libraries
34
+ // UI Libraries and Icons
35
+ // Utility Functions and Hooks
36
+ // Dispatch Codes and Models
37
+ // Schema and Types
38
+ // Constants
39
+ // Components
40
+ // Styles
41
+ // Analytics
30
42
  const ValidateOTPET = props => {
31
- var _props$generationLogi, _props$generationLogi2;
32
- const [showBackModal, setShowBackModal] = (0, _react.useState)(false);
43
+ var _validateConfigContex;
44
+ const {
45
+ contacts,
46
+ navigation
47
+ } = props;
48
+ // Context
49
+ const validateConfigContext = (0, _react.useContext)(_valdiateOTPContext.ValidateOTPContext);
50
+ const domain = (validateConfigContext === null || validateConfigContext === void 0 || (_validateConfigContex = validateConfigContext.sdkConfig) === null || _validateConfigContex === void 0 ? void 0 : _validateConfigContex.validateOtpDomain) ?? '';
33
51
 
34
- // Handle back-button click
35
- (0, _native.useFocusEffect)(_react.default.useCallback(() => {
36
- const onBackPress = () => {
37
- var _props$taskMeta;
38
- if ((_props$taskMeta = props.taskMeta) !== null && _props$taskMeta !== void 0 && _props$taskMeta.enableGoBack && (0, _utils2.hasGoBackConnector)(props.applicableReasons)) {
39
- setShowBackModal(true);
40
- return true;
41
- } else {
42
- props.navigation.goBack();
43
- return true;
44
- }
45
- };
46
- _reactNative.BackHandler.addEventListener('hardwareBackPress', onBackPress);
47
- return () => _reactNative.BackHandler.removeEventListener('hardwareBackPress', onBackPress);
48
- }, []));
49
- (0, _react.useLayoutEffect)(() => {
50
- props.navigation.setOptions({
51
- title: props.title,
52
- headerLeft: () => {
53
- return /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
54
- onPress: () => {
55
- var _props$taskMeta2;
56
- if ((_props$taskMeta2 = props.taskMeta) !== null && _props$taskMeta2 !== void 0 && _props$taskMeta2.enableGoBack && (0, _utils2.hasGoBackConnector)(props.applicableReasons)) setShowBackModal(true);else props.navigation.goBack();
57
- const cta = 'Arrow Back';
58
- (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
59
- severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
60
- eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
61
- screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
62
- cta: cta
63
- });
64
- },
65
- name: "arrow-back",
66
- color: 'black',
67
- size: 25,
68
- style: {
69
- paddingRight: 15,
70
- paddingTop: 5
71
- }
72
- });
73
- }
74
- });
75
- }, [props.navigation, props.title]);
76
- const retryConfig = (0, _utils.parseRetryConfig)((_props$generationLogi = props.generationLogic) === null || _props$generationLogi === void 0 ? void 0 : _props$generationLogi.retryConfig);
77
- const initialMinute = Math.floor(retryConfig.delay / 60);
78
- const initialSeconds = parseInt((retryConfig.delay % 60).toFixed(0));
79
- const [timer, resetTimer] = (0, _useTimer.default)({
80
- initialMinute,
81
- initialSeconds
82
- });
83
- const [sendOTP, setSendOTP] = (0, _react.useState)(Boolean((_props$generationLogi2 = props.generationLogic) === null || _props$generationLogi2 === void 0 ? void 0 : _props$generationLogi2.generateOnLoad));
84
- const [retryCount, setRetryCount] = (0, _react.useState)(0);
52
+ // Configurations
53
+ const resendConfig = (0, _utils2.parseResendConfig)(props.resendOTP);
54
+ const otpInputConfig = {
55
+ inputType: props.inputType || _ValidateOTPSchema.InputType.NUMBER,
56
+ length: props.otpLength || 6,
57
+ validationRegex: `^[0-9]+$`
58
+ };
59
+
60
+ // State: Contact Management
61
+ const [contactList, setContactList] = (0, _react.useState)(contacts);
62
+ const [selectedContact, setSelectedContact] = (0, _react.useState)(contactList[0] || null);
63
+ const [isContactVisited, setIsContactVisited] = (0, _react.useState)(props.doorstepOTP);
64
+
65
+ // State: OTP Handling
85
66
  const [userInput, setUserInput] = (0, _react.useState)({
86
67
  captureInput: ''
87
68
  });
88
69
  const {
89
70
  captureInput: otpCode
90
71
  } = userInput;
91
- const setOTPCode = otpCode => {
72
+ const setOTPCode = code => {
92
73
  setUserInput({
93
74
  ...userInput,
94
- captureInput: otpCode
75
+ captureInput: code
95
76
  });
96
77
  };
78
+ const [retryCount, setRetryCount] = (0, _react.useState)(0);
79
+ const [resendCount, setResendCount] = (0, _react.useState)(0);
80
+ const [disableProceedBtn, setDisableProceedBtn] = (0, _react.useState)(false);
81
+
82
+ // State: UI and Navigation
83
+ const [showBackModal, setShowBackModal] = (0, _react.useState)(false);
84
+ const [showCancelModal, setShowCancelModal] = (0, _react.useState)(false);
85
+ const [loading, setLoading] = (0, _react.useState)(false);
97
86
  const [hasError, setHasError] = (0, _react.useState)(false);
98
87
  const [errorMessage, setErrorMessage] = (0, _react.useState)('');
88
+ const [success, setSuccess] = (0, _react.useState)(false);
89
+ const [shouldNavigateBack, setShouldNavigateBack] = (0, _react.useState)(false);
90
+ const [currentScreen, setCurrentScreen] = (0, _react.useState)(props.doorstepOTP ? _utils2.VALIDATE_OTP_SCREENS.CONTACT_LIST : _utils2.VALIDATE_OTP_SCREENS.OTP_VIEW);
91
+
92
+ // State: SnackBar
99
93
  const [snackBar, setSnackBar] = (0, _react.useState)({
100
94
  show: false,
101
- type: _SnackBarCustom.SnackBarType.SUCCESS,
95
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS,
102
96
  message: ''
103
97
  });
104
- const renderButtons = () => {
105
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
106
- style: styles.bottomView
107
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Button, {
108
- style: [_CommonStyles.CommonStyles.nextButton, {
109
- width: 165,
110
- marginStart: 10
111
- }],
112
- labelStyle: _CommonStyles.CommonStyles.nextButtonLabel,
113
- mode: 'contained',
114
- uppercase: false,
115
- onPress: async () => {
116
- var _props$generationLogi3;
117
- // send OTP Generation using props
118
- if (sendOTP && props.generationLogic && (_props$generationLogi3 = props.generationLogic) !== null && _props$generationLogi3 !== void 0 && _props$generationLogi3.generateOnLoad) {
119
- const response = await (0, _utils.generateOTP)(props.generationLogic.api);
120
- resetTimer();
121
- if (response) setSendOTP(false);else setSnackBar({
98
+ (0, _react.useEffect)(() => {
99
+ const fetchCounts = async () => {
100
+ // eslint-disable-next-line no-shadow
101
+ const retryCount = await (0, _utils2.getCount)(_utils2.countType.RETRY);
102
+ // eslint-disable-next-line no-shadow
103
+ const resendCount = await (0, _utils2.getCount)(_utils2.countType.RESEND);
104
+ setRetryCount(retryCount);
105
+ setResendCount(resendCount);
106
+ };
107
+ fetchCounts();
108
+ }, []);
109
+
110
+ // TO hide header for modal screen
111
+ (0, _react.useLayoutEffect)(() => {
112
+ navigation.setOptions({
113
+ // headerShown: loading ? false : true,
114
+ headerStyle: {
115
+ display: loading ? 'none' : 'flex' // Hide the header by setting its display to 'none'
116
+ }
117
+ });
118
+ // eslint-disable-next-line react-hooks/exhaustive-deps
119
+ }, [loading]);
120
+ (0, _react.useEffect)(() => {
121
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.OTP_VIEW) {
122
+ setDisableProceedBtn((otpCode === null || otpCode === void 0 ? void 0 : otpCode.length) !== otpInputConfig.length || !selectedContact || hasError);
123
+ } else {
124
+ setDisableProceedBtn(!selectedContact);
125
+ }
126
+ }, [currentScreen, hasError, otpCode === null || otpCode === void 0 ? void 0 : otpCode.length, otpInputConfig.length, selectedContact]);
127
+ (0, _react.useEffect)(() => {
128
+ if (!contacts) return;
129
+
130
+ // Filter contacts based on the delivery method, or use all contacts if BOTH
131
+ const filteredContacts = contacts.filter(contact => {
132
+ var _contact$mode, _props$otpDeliveryMet;
133
+ return props.otpDeliveryMethod === _ValidateOTPSchema.OtpDeliveryMethodTypes.BOTH ? true : ((_contact$mode = contact.mode) === null || _contact$mode === void 0 ? void 0 : _contact$mode.toLowerCase()) === ((_props$otpDeliveryMet = props.otpDeliveryMethod) === null || _props$otpDeliveryMet === void 0 ? void 0 : _props$otpDeliveryMet.toLowerCase());
134
+ }).map((contact, index) => ({
135
+ ...contact,
136
+ isSelected: index === 0 // Select the first contact by default
137
+ }));
138
+
139
+ // Update the state with the filtered contacts
140
+ setContactList(filteredContacts);
141
+ if (props.doorstepOTP) {
142
+ setSelectedContact(filteredContacts[0]);
143
+ }
144
+ }, [contacts, props.doorstepOTP, props.otpDeliveryMethod]);
145
+
146
+ // Monitor shouldNavigateBack to trigger navigation if set
147
+ (0, _react.useEffect)(() => {
148
+ if (shouldNavigateBack) {
149
+ navigation.goBack();
150
+ setOTPCode('');
151
+ }
152
+ // eslint-disable-next-line react-hooks/exhaustive-deps
153
+ }, [navigation, shouldNavigateBack]);
154
+ const handleBackNavigation = () => {
155
+ var _props$taskMeta;
156
+ if ((_props$taskMeta = props.taskMeta) !== null && _props$taskMeta !== void 0 && _props$taskMeta.enableGoBack && (0, _utils.hasGoBackConnector)(props.applicableReasons)) {
157
+ setShowBackModal(true);
158
+ } else {
159
+ setShouldNavigateBack(true);
160
+ }
161
+ return true;
162
+ };
163
+ const onProceedCancel = async () => {
164
+ var _props$applicableReas;
165
+ // Cancel the ET
166
+ props.onSubmitET({
167
+ ...(await (0, _ExecTaskUtils.getBaseETResponse)(_ETConfig.EntityCode.VALIDATE_OTP_ET, false, (0, _EventCodeContainer.getEventCodeByET)(_ETConfig.ExecutionTaskID.VALIDATE_OTP_ET, false, (_props$applicableReas = props.applicableReasons) === null || _props$applicableReas === void 0 ? void 0 : _props$applicableReas.failure), '', props.mergedObjectiveId, _ETConfig.ExecutionTaskID.VALIDATE_OTP_ET)),
168
+ retryCount: retryCount
169
+ });
170
+ const cta = 'Cancel';
171
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
172
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
173
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
174
+ screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
175
+ cta: cta
176
+ });
177
+ };
178
+ const handleContactListProceed = async () => {
179
+ try {
180
+ var _props$orderData$, _props$orderData, _response$data3, _response$additionalI;
181
+ setSnackBar({
182
+ show: false,
183
+ message: '',
184
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS
185
+ });
186
+ setLoading(true);
187
+ const payload = {
188
+ jobId: (_props$orderData$ = props.orderData[0]) === null || _props$orderData$ === void 0 ? void 0 : _props$orderData$.jobId,
189
+ refId: props.refId,
190
+ objectiveId: props.workflowId,
191
+ contactInfo: {
192
+ id: selectedContact.id,
193
+ mode: selectedContact.mode,
194
+ type: selectedContact.type,
195
+ index: selectedContact.index
196
+ },
197
+ meta: {
198
+ orderIds: (_props$orderData = props.orderData) === null || _props$orderData === void 0 ? void 0 : _props$orderData.map(order => {
199
+ var _order$displayInfo;
200
+ return order === null || order === void 0 || (_order$displayInfo = order.displayInfo) === null || _order$displayInfo === void 0 ? void 0 : _order$displayInfo.orderId;
201
+ })
202
+ }
203
+ };
204
+ const response = await (0, _utils2.generateOTP)(payload, {
205
+ ...props,
206
+ domain
207
+ });
208
+ if (!(response !== null && response !== void 0 && response.status)) {
209
+ if (!response.status && (response === null || response === void 0 ? void 0 : response.code) === '101080001017') {
210
+ var _response$data;
211
+ setCurrentScreen(_utils2.VALIDATE_OTP_SCREENS.OTP_VIEW);
212
+ setLoading(false);
213
+ setSnackBar({
122
214
  show: true,
123
- message: _constants.ERROR_GENERATING_OTP,
124
- type: _SnackBarCustom.SnackBarType.FAILURE
215
+ message: (response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 || (_response$data = _response$data.result) === null || _response$data === void 0 ? void 0 : _response$data.message) || _constants2.UNABLE_TO_SEND_OTP,
216
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
217
+ });
218
+ } else {
219
+ var _response$data2;
220
+ setLoading(false);
221
+ setSnackBar({
222
+ show: true,
223
+ message: (response === null || response === void 0 || (_response$data2 = response.data) === null || _response$data2 === void 0 || (_response$data2 = _response$data2.result) === null || _response$data2 === void 0 ? void 0 : _response$data2.message) || _constants2.ERROR_GENERATING_OTP,
224
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
125
225
  });
126
226
  }
127
- // check for Validation
128
- else if (!sendOTP) {
129
- if (otpCode.length < props.captureInput.length) {
130
- setSnackBar({
131
- show: true,
132
- message: _constants.INVALID_OTP_LENGTH.replace('<length>', `${props.captureInput.length}`),
133
- type: _SnackBarCustom.SnackBarType.FAILURE
134
- });
135
- } else {
136
- const isValid = await (0, _utils.checkForValidation)(otpCode, props.validation, {
137
- userInput
138
- });
139
- if (!isValid) {
140
- setErrorMessage(_constants.INVALID_OTP);
141
- setHasError(true);
142
- } else {
143
- var _props$applicableReas;
144
- props.onSubmitET({
145
- ...(await (0, _ExecTaskUtils.getBaseETResponse)(_ETConfig.EntityCode.VALIDATE_OTP_ET, true, (0, _EventCodeContainer.getEventCodeByET)(_ETConfig.ExecutionTaskID.VALIDATE_OTP_ET, true, (_props$applicableReas = props.applicableReasons) === null || _props$applicableReas === void 0 ? void 0 : _props$applicableReas.success), '', props.mergedObjectiveId, _ETConfig.ExecutionTaskID.VALIDATE_OTP_ET))
146
- });
147
- }
148
- }
149
- }
150
- const cta = 'Proceed';
151
- (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
152
- severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
153
- eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
154
- screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
155
- cta: cta
227
+ return;
228
+ }
229
+ const resendCountValue = Number((response === null || response === void 0 || (_response$data3 = response.data) === null || _response$data3 === void 0 || (_response$data3 = _response$data3.result) === null || _response$data3 === void 0 ? void 0 : _response$data3.resendCount) || (response === null || response === void 0 || (_response$additionalI = response.additionalInfo) === null || _response$additionalI === void 0 ? void 0 : _response$additionalI.resendOTP)) || 0;
230
+ setResendCount(resendCountValue);
231
+ await (0, _utils2.updateResendCount)(resendCountValue);
232
+ setCurrentScreen(_utils2.VALIDATE_OTP_SCREENS.OTP_VIEW);
233
+ setLoading(false);
234
+ setSnackBar({
235
+ show: true,
236
+ message: _constants2.OTP_SENT_SUCCESSFULLY,
237
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS
238
+ });
239
+ } catch (error) {
240
+ setLoading(false);
241
+ console.error('Error in handleContactListProceed:', error);
242
+ setSnackBar({
243
+ show: true,
244
+ message: _constants2.ERROR_GENERATING_OTP,
245
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
246
+ });
247
+ }
248
+ };
249
+ const handleOTPViewProceed = async () => {
250
+ var _props$otpValidation, _ValidationType$ONLIN, _response$result, _response$additionalI2;
251
+ if (otpCode.length < props.otpLength) {
252
+ // Show error if OTP length is invalid
253
+ setSnackBar({
254
+ show: true,
255
+ message: _constants2.INVALID_OTP_LENGTH.replace('<length>', `${props.otpLength}`),
256
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
257
+ });
258
+ return;
259
+ }
260
+ const payload = {
261
+ refId: props.refId,
262
+ otp: otpCode
263
+ };
264
+ const isOnlineValidation = props !== null && props !== void 0 && props.otpValidation ? (props === null || props === void 0 || (_props$otpValidation = props.otpValidation) === null || _props$otpValidation === void 0 || (_props$otpValidation = _props$otpValidation.toString()) === null || _props$otpValidation === void 0 ? void 0 : _props$otpValidation.toLowerCase()) === ((_ValidationType$ONLIN = _ValidateOTPSchema.ValidationType.ONLINE) === null || _ValidationType$ONLIN === void 0 || (_ValidationType$ONLIN = _ValidationType$ONLIN.toString()) === null || _ValidationType$ONLIN === void 0 ? void 0 : _ValidationType$ONLIN.toLowerCase()) : true;
265
+ const response = isOnlineValidation ? await (0, _utils2.verifyOTP)(payload, {
266
+ ...props,
267
+ domain
268
+ }) : otpCode === props.offlineOtpValue;
269
+ const retryCountValue = Number((response === null || response === void 0 || (_response$result = response.result) === null || _response$result === void 0 ? void 0 : _response$result.retryCount) || (response === null || response === void 0 || (_response$additionalI2 = response.additionalInfo) === null || _response$additionalI2 === void 0 ? void 0 : _response$additionalI2.retryCount)) || retryCount + 1;
270
+ if (response === false || (response === null || response === void 0 ? void 0 : response.status) === false || !response) {
271
+ setOTPCode('');
272
+ setRetryCount(retryCountValue);
273
+ await (0, _utils2.updateRetryCount)(retryCountValue);
274
+ if (props.maxRetries - retryCountValue === 1) {
275
+ setSnackBar({
276
+ show: true,
277
+ message: _constants2.INVALID_OTP_ONE_ATTEMPT_LEFT,
278
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
279
+ });
280
+ } else if (retryCountValue >= props.maxRetries) {
281
+ setSuccess(false);
282
+ setSnackBar({
283
+ show: false,
284
+ message: '',
285
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS
286
+ });
287
+ setLoading(true);
288
+ setTimeout(() => {
289
+ setCurrentScreen(_utils2.VALIDATE_OTP_SCREENS.VERIFICATION_COMPLETE);
290
+ setLoading(false);
291
+ }, 1000);
292
+ } else {
293
+ setSnackBar({
294
+ show: true,
295
+ message: _constants2.INVALID_OTP.replace('<length>', `${props.maxRetries - retryCountValue}`),
296
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
156
297
  });
157
298
  }
158
- }, "Proceed")), /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Button, {
159
- style: [_CommonStyles.CommonStyles.cancelButton, {
160
- width: 165,
161
- marginEnd: 10
162
- }],
163
- labelStyle: _CommonStyles.CommonStyles.cancelButtonLabel,
164
- mode: 'outlined',
165
- uppercase: false,
166
- onPress: async () => {
167
- var _props$applicableReas2;
168
- // Cancel the ET
169
- props.onSubmitET({
170
- ...(await (0, _ExecTaskUtils.getBaseETResponse)(_ETConfig.EntityCode.VALIDATE_OTP_ET, false, (0, _EventCodeContainer.getEventCodeByET)(_ETConfig.ExecutionTaskID.VALIDATE_OTP_ET, false, (_props$applicableReas2 = props.applicableReasons) === null || _props$applicableReas2 === void 0 ? void 0 : _props$applicableReas2.failure), '', props.mergedObjectiveId, _ETConfig.ExecutionTaskID.VALIDATE_OTP_ET))
299
+ } else {
300
+ setSuccess(true);
301
+ setSnackBar({
302
+ show: false,
303
+ message: '',
304
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS
305
+ });
306
+ setLoading(true);
307
+ setTimeout(() => {
308
+ setCurrentScreen(_utils2.VALIDATE_OTP_SCREENS.VERIFICATION_COMPLETE);
309
+ setLoading(false);
310
+ }, 1000);
311
+ }
312
+ };
313
+ const onProceed = async () => {
314
+ try {
315
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.CONTACT_LIST) {
316
+ handleContactListProceed();
317
+ } else {
318
+ handleOTPViewProceed();
319
+ }
320
+ const cta = 'Proceed';
321
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
322
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
323
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
324
+ screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
325
+ cta: cta
326
+ });
327
+ } catch (error) {
328
+ setLoading(false);
329
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.CONTACT_LIST) {
330
+ setSnackBar({
331
+ show: true,
332
+ message: _constants2.ERROR_GENERATING_OTP,
333
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
171
334
  });
172
- const cta = 'Skip';
173
- (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
174
- severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
175
- eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
176
- screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
177
- cta: cta
335
+ }
336
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.OTP_VIEW) {
337
+ setSnackBar({
338
+ show: true,
339
+ message: _constants2.ERROR_VALIDATE_OTP,
340
+ type: _SnackBarCustom.SnackBarType.OTP_FAILED
178
341
  });
179
342
  }
180
- }, "Skip")));
343
+ }
344
+ return;
181
345
  };
182
- const renderRetryButton = () => {
183
- var _props$generationLogi4;
184
- const generationLogic = props.generationLogic;
185
- const enableRetry = (_props$generationLogi4 = props.generationLogic) === null || _props$generationLogi4 === void 0 ? void 0 : _props$generationLogi4.enableRetry;
186
- if (generationLogic && enableRetry) {
187
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
188
- style: styles.retryButton
189
- }, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Button, {
190
- disabled: Boolean(timer) || retryCount === retryConfig.maxAttempt,
191
- uppercase: false,
192
- onPress: async () => {
193
- setOTPCode('');
194
- setRetryCount(retryCount => retryCount + 1);
195
- await (0, _utils.generateOTP)(generationLogic.api);
196
- resetTimer();
197
- const cta = retryConfig.buttonTitle;
198
- (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
199
- severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
200
- eventName: _SentrySdkConstants.SentryEventNameSdkConstants.BUTTON_CLICKED,
201
- screenName: _SentrySdkConstants.ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
202
- cta: cta
203
- });
204
- }
205
- }, `${retryConfig.buttonTitle} ${timer ? `in ${timer}` : ''}`));
206
- } else return null;
346
+ const onCancelET = () => {
347
+ setShowCancelModal(true);
207
348
  };
208
- const renderErrorMessage = () => {
209
- return errorMessage ? /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
210
- style: styles.errorMessage
211
- }, errorMessage) : null;
349
+ const handleSelectContact = contactDetails => {
350
+ setSelectedContact(contactDetails);
351
+ setContactList(prevContactList => prevContactList.map(contact => ({
352
+ ...contact,
353
+ isSelected: (contact === null || contact === void 0 ? void 0 : contact.value) === contactDetails.value
354
+ })));
212
355
  };
213
- const renderModal = () => {
356
+
357
+ // *Rendering components*
358
+ const renderGoBackModal = () => {
214
359
  return /*#__PURE__*/_react.default.createElement(_GoBackModal.default, {
215
360
  showModal: showBackModal,
216
361
  setShowModal: setShowBackModal,
217
362
  onSuccess: async () => {
218
363
  props.onSubmitET({
219
- ...(await (0, _ExecTaskUtils.getBaseETResponse)(_ETConfig.EntityCode.VALIDATE_OTP_ET, false, _constants2.GO_BACK_EVENT_CODE, '', props.mergedObjectiveId, _ETConfig.ExecutionTaskID.VALIDATE_OTP_ET))
364
+ ...(await (0, _ExecTaskUtils.getBaseETResponse)(_ETConfig.EntityCode.VALIDATE_OTP_ET, false, _constants.GO_BACK_EVENT_CODE, '', props.mergedObjectiveId, _ETConfig.ExecutionTaskID.VALIDATE_OTP_ET)),
365
+ retryCount: retryCount
220
366
  });
221
367
  setShowBackModal(false);
222
368
  },
223
369
  onFailure: () => setShowBackModal(false)
224
370
  });
225
371
  };
226
- if (sendOTP) {
227
- return /*#__PURE__*/_react.default.createElement(_reactNativePaper.Provider, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
228
- style: _CommonStyles.CommonStyles.mainContainer
229
- }, renderModal(), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
372
+ const renderCancelModal = () => {
373
+ return /*#__PURE__*/_react.default.createElement(_ConfirmCancelModal.default, {
374
+ showModal: showCancelModal,
375
+ setShowModal: setShowCancelModal,
376
+ onSuccess: () => {
377
+ onProceedCancel();
378
+ setShowCancelModal(false);
379
+ },
380
+ onFailure: () => setShowCancelModal(false)
381
+ });
382
+ };
383
+ const renderButtons = () => {
384
+ if (loading || currentScreen === _utils2.VALIDATE_OTP_SCREENS.VERIFICATION_COMPLETE) return null;
385
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
386
+ style: _ValidateOtpStyles.default.bottomView
387
+ }, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Button, {
388
+ style: [_ValidateOtpStyles.default.mainBtnStyles, _CommonStyles.CommonStyles.nextButton, {
389
+ borderRadius: 6
390
+ }, disableProceedBtn && {
391
+ backgroundColor: '#E0E3EB'
392
+ }],
393
+ labelStyle: [_CommonStyles.CommonStyles.nextButtonLabel, _ValidateOtpStyles.default.activeBtnText, disableProceedBtn && disableProceedBtn && {
394
+ color: '#A3AAC2'
395
+ }],
396
+ mode: 'contained',
397
+ uppercase: false,
398
+ disabled: disableProceedBtn,
399
+ onPress: onProceed
400
+ }, "Proceed"), props.restrictCancel === true || props.allowCancel === false ? null : props.isSelfLoop == false && /*#__PURE__*/_react.default.createElement(_reactNativePaper.Button, {
401
+ style: [_ValidateOtpStyles.default.mainBtnStyles, _CommonStyles.CommonStyles.cancelButton, {
402
+ borderRadius: 4
403
+ }],
404
+ labelStyle: [_CommonStyles.CommonStyles.cancelButtonLabel, _ValidateOtpStyles.default.cancelBtnText],
405
+ mode: 'outlined',
406
+ uppercase: false,
407
+ onPress: onCancelET
408
+ }, "Cancel"));
409
+ };
410
+ const renderLoadingCard = () => {
411
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
230
412
  style: {
231
413
  flex: 1,
232
- justifyContent: 'center',
233
- alignItems: 'center',
234
- marginHorizontal: 18
414
+ justifyContent: 'center'
235
415
  }
236
416
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
417
+ style: _ValidateOtpStyles.default.loadingCard
418
+ }, /*#__PURE__*/_react.default.createElement(_reactNativePaper.ActivityIndicator, {
419
+ size: "small",
420
+ color: "rgba(107, 142, 255, 1)"
421
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
422
+ style: _ValidateOtpStyles.default.loadingText
423
+ }, "Loading")));
424
+ };
425
+ const renderSnackBar = () => {
426
+ if (!snackBar.show) return null; // Show snackbar only when `snackBar.show` is true
427
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
237
428
  style: {
238
- marginBottom: 16
239
- }
240
- }, _reactNative.Platform.OS === 'android' && /*#__PURE__*/_react.default.createElement(_reactNativeSvg.SvgXml, {
241
- xml: _constants.mobileSVG
242
- })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
243
- style: {
244
- marginTop: 16
245
- }
246
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
247
- style: styles.titleText
248
- }, "Do you want to proceed to OTP verification? This will send a verification code to your consignee."))), renderButtons(), /*#__PURE__*/_react.default.createElement(_SnackBarCustom.default, {
249
- type: snackBar.type,
250
- message: `${snackBar.message}`,
251
- visible: snackBar.show,
252
- onDismiss: () => {
253
- setSnackBar({
254
- show: false,
255
- message: '',
256
- type: _SnackBarCustom.SnackBarType.SUCCESS
257
- });
429
+ marginHorizontal: 6
258
430
  }
259
- })));
260
- }
261
- if (!sendOTP) {
262
- var _props$captureInput;
263
- return /*#__PURE__*/_react.default.createElement(_reactNativePaper.Provider, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
264
- style: _CommonStyles.CommonStyles.mainContainer
265
- }, renderModal(), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
266
- style: styles.otpContainer
267
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
268
- style: styles.otpTitle
269
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Enter the ", (_props$captureInput = props.captureInput) === null || _props$captureInput === void 0 ? void 0 : _props$captureInput.length, " digit OTP sent to the consignee to confirm order completion")), /*#__PURE__*/_react.default.createElement(_OTPInput.default, {
270
- input: props.captureInput,
271
- otpCode: otpCode,
272
- setOTPCode: setOTPCode,
273
- hasError: hasError,
274
- setHasError: setHasError,
275
- setErrorMessage: setErrorMessage
276
- }), renderErrorMessage(), renderRetryButton()), renderButtons(), /*#__PURE__*/_react.default.createElement(_SnackBarCustom.default, {
431
+ }, /*#__PURE__*/_react.default.createElement(_SnackBarCustom.default, {
432
+ duration: 2000,
277
433
  type: snackBar.type,
434
+ customBottom: 80,
278
435
  message: `${snackBar.message}`,
279
436
  visible: snackBar.show,
280
437
  onDismiss: () => {
281
438
  setSnackBar({
282
439
  show: false,
283
440
  message: '',
284
- type: _SnackBarCustom.SnackBarType.SUCCESS
441
+ type: _SnackBarCustom.SnackBarType.OTP_SUCCESS
285
442
  });
286
443
  }
287
- })));
288
- }
289
- return null;
444
+ }));
445
+ };
446
+ const renderContent = () => {
447
+ // if (loading) {
448
+ // return renderLoadingCard;
449
+ // }
450
+
451
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.VERIFICATION_COMPLETE) {
452
+ return /*#__PURE__*/_react.default.createElement(_VerificationComplete.default, _extends({}, props, {
453
+ setLoading: setLoading,
454
+ success: success,
455
+ retryCount: retryCount
456
+ }));
457
+ }
458
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.CONTACT_LIST) {
459
+ return /*#__PURE__*/_react.default.createElement(_ContactListView.ContactListView, _extends({}, props, {
460
+ setIsContactVisited: setIsContactVisited,
461
+ handleSelectContact: handleSelectContact,
462
+ handleBackNavigation: handleBackNavigation,
463
+ contactList: contactList,
464
+ domain: domain
465
+ }));
466
+ }
467
+ if (currentScreen === _utils2.VALIDATE_OTP_SCREENS.OTP_VIEW) {
468
+ return /*#__PURE__*/_react.default.createElement(_OTPView.OTPView, _extends({}, props, {
469
+ isContactVisited: isContactVisited,
470
+ otpCode: otpCode,
471
+ otpInputConfig: otpInputConfig,
472
+ selectedContact: selectedContact,
473
+ setCurrentScreen: setCurrentScreen,
474
+ setErrorMessage: setErrorMessage,
475
+ setSnackBar: setSnackBar,
476
+ errorMessage: errorMessage,
477
+ setHasError: setHasError,
478
+ setOTPCode: setOTPCode,
479
+ setLoading: setLoading,
480
+ handleBackNavigation: handleBackNavigation,
481
+ hasError: hasError,
482
+ doorstepOTP: props.doorstepOTP,
483
+ setResendCount: setResendCount,
484
+ resendCount: resendCount,
485
+ resendConfig: resendConfig,
486
+ domain: domain
487
+ }));
488
+ }
489
+ return null;
490
+ };
491
+ return /*#__PURE__*/_react.default.createElement(_reactNativePaper.Provider, null, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Portal, null, loading ? /*#__PURE__*/_react.default.createElement(_ProgressDialog.default, {
492
+ customModalContentStyle: {
493
+ paddingVertical: 32
494
+ },
495
+ visible: loading,
496
+ label: "Loading",
497
+ labelStyle: {
498
+ fontWeight: '400',
499
+ marginTop: 16,
500
+ fontFamily: _reactNative.Platform.OS === 'android' ? _CommonStyles.Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
501
+ color: '#525B7A',
502
+ letterSpacing: 0.25
503
+ }
504
+ }) : currentScreen === _utils2.VALIDATE_OTP_SCREENS.VERIFICATION_COMPLETE ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
505
+ style: [_CommonStyles.CommonStyles.mainContainer]
506
+ }, /*#__PURE__*/_react.default.createElement(_VerificationComplete.default, _extends({}, props, {
507
+ setLoading: setLoading,
508
+ success: success,
509
+ retryCount: retryCount
510
+ }))) : currentScreen === _utils2.VALIDATE_OTP_SCREENS.CONTACT_LIST ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
511
+ style: [_CommonStyles.CommonStyles.mainContainer]
512
+ }, renderGoBackModal(), renderCancelModal(), /*#__PURE__*/_react.default.createElement(_ContactListView.ContactListView, _extends({}, props, {
513
+ setIsContactVisited: setIsContactVisited,
514
+ handleSelectContact: handleSelectContact,
515
+ handleBackNavigation: handleBackNavigation,
516
+ contactList: contactList,
517
+ domain: domain
518
+ })), renderButtons(), renderSnackBar()) : currentScreen === _utils2.VALIDATE_OTP_SCREENS.OTP_VIEW ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
519
+ style: [_CommonStyles.CommonStyles.mainContainer]
520
+ }, renderGoBackModal(), renderCancelModal(), /*#__PURE__*/_react.default.createElement(_OTPView.OTPView, _extends({}, props, {
521
+ isContactVisited: isContactVisited,
522
+ otpCode: otpCode,
523
+ otpInputConfig: otpInputConfig,
524
+ selectedContact: selectedContact,
525
+ setCurrentScreen: setCurrentScreen,
526
+ setErrorMessage: setErrorMessage,
527
+ setSnackBar: setSnackBar,
528
+ errorMessage: errorMessage,
529
+ setHasError: setHasError,
530
+ setOTPCode: setOTPCode,
531
+ setLoading: setLoading,
532
+ handleBackNavigation: handleBackNavigation,
533
+ hasError: hasError,
534
+ doorstepOTP: props.doorstepOTP,
535
+ setResendCount: setResendCount,
536
+ resendCount: resendCount,
537
+ resendConfig: resendConfig,
538
+ domain: domain
539
+ })), renderButtons(), renderSnackBar()) : null));
290
540
  };
291
541
  var _default = exports.default = ValidateOTPET;
292
- const styles = _reactNative.StyleSheet.create({
293
- bottomView: {
294
- flexDirection: 'row-reverse',
295
- justifyContent: 'space-evenly',
296
- padding: 16,
297
- backgroundColor: 'white'
298
- },
299
- titleText: {
300
- justifyContent: 'center',
301
- fontFamily: _reactNative.Platform.OS === 'android' ? _CommonStyles.Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
302
- fontStyle: 'normal',
303
- fontSize: 16,
304
- lineHeight: 20,
305
- letterSpacing: 0.25,
306
- textAlign: 'center',
307
- color: '#3D445C',
308
- marginBottom: 10
309
- },
310
- otpTitle: {
311
- marginTop: 10,
312
- marginBottom: 20,
313
- fontFamily: _reactNative.Platform.OS === 'android' ? _CommonStyles.Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
314
- fontStyle: 'normal',
315
- fontSize: 16,
316
- lineHeight: 20,
317
- letterSpacing: 0.25,
318
- color: '#3D445C',
319
- alignItems: 'center'
320
- },
321
- otpContainer: {
322
- marginTop: 20,
323
- marginBottom: 40,
324
- marginHorizontal: 10,
325
- flex: 1
326
- },
327
- retryButton: {
328
- alignItems: 'flex-start',
329
- marginVertical: 10
330
- },
331
- errorMessage: {
332
- marginTop: 16,
333
- marginHorizontal: 10,
334
- color: '#DC2626',
335
- fontFamily: _reactNative.Platform.OS === 'android' ? _CommonStyles.Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
336
- fontSize: 12,
337
- lineHeight: 16
338
- },
339
- subText: {
340
- justifyContent: 'center',
341
- fontFamily: _reactNative.Platform.OS === 'android' ? _CommonStyles.Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
342
- fontStyle: 'normal',
343
- fontSize: 14,
344
- letterSpacing: 0.25,
345
- lineHeight: 20,
346
- textAlign: 'center',
347
- color: '#000000',
348
- marginBottom: 10
349
- },
350
- modalContent: {
351
- marginStart: 60,
352
- marginEnd: 60,
353
- flex: 1,
354
- marginBottom: 60
355
- },
356
- modalView: {
357
- backgroundColor: 'white',
358
- padding: 15,
359
- borderRadius: 9
360
- }
361
- });
362
542
  //# sourceMappingURL=ValidateOTPET.js.map