@os1-platform/dispatch-mobile 3.0.4 → 3.1.1

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 (218) 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 +270 -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/constants.js +3 -1
  55. package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
  56. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  57. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  58. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  59. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  60. package/lib/commonjs/models/sdk.js +1 -0
  61. package/lib/commonjs/models/sdk.js.map +1 -1
  62. package/lib/commonjs/ui/screens/ValidateOTPScreen.js +132 -12
  63. package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
  64. package/lib/commonjs/utils/ApiUtils.js +122 -3
  65. package/lib/commonjs/utils/ApiUtils.js.map +1 -1
  66. package/lib/commonjs/utils/ExecTaskUtils.js +67 -7
  67. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  68. package/lib/commonjs/utils/context/valdiateOTPContext.js +11 -0
  69. package/lib/commonjs/utils/context/valdiateOTPContext.js.map +1 -0
  70. package/lib/commonjs/utils/helper.js.map +1 -1
  71. package/lib/commonjs/utils/hooks/useTimer.js +68 -30
  72. package/lib/commonjs/utils/hooks/useTimer.js.map +1 -1
  73. package/lib/module/components/dispatch/DispatchExecNavigator.js.map +1 -1
  74. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  75. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +1 -1
  76. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  77. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +480 -290
  78. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  79. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js +14 -0
  80. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
  81. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js +264 -0
  82. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js.map +1 -0
  83. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js +88 -0
  84. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js.map +1 -0
  85. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js +194 -0
  86. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js.map +1 -0
  87. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js +96 -0
  88. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js.map +1 -0
  89. package/lib/module/components/executiontasks/validateOTP/constants.js +11 -4
  90. package/lib/module/components/executiontasks/validateOTP/constants.js.map +1 -1
  91. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js +59 -0
  92. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js.map +1 -0
  93. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js +11 -5
  94. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  95. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js +52 -0
  96. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js.map +1 -0
  97. package/lib/module/components/executiontasks/validateOTP/utils.js +219 -108
  98. package/lib/module/components/executiontasks/validateOTP/utils.js.map +1 -1
  99. package/lib/module/components/utils/Scale.js +14 -0
  100. package/lib/module/components/utils/Scale.js.map +1 -0
  101. package/lib/module/components/widgets/ConfirmCancelModal.js +40 -0
  102. package/lib/module/components/widgets/ConfirmCancelModal.js.map +1 -0
  103. package/lib/module/components/widgets/SnackBarCustom.js +36 -4
  104. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  105. package/lib/module/components/widgets/SplitTextInput.js +48 -19
  106. package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
  107. package/lib/module/constants/apiConstants.js +4 -1
  108. package/lib/module/constants/apiConstants.js.map +1 -1
  109. package/lib/module/constants/constants.js +1 -0
  110. package/lib/module/constants/constants.js.map +1 -1
  111. package/lib/module/icons/icExclamationcircleo_dark.svg +3 -0
  112. package/lib/module/icons/icFailed.gif +0 -0
  113. package/lib/module/icons/icRadioChecked.svg +4 -0
  114. package/lib/module/icons/icRadioUnchecked.svg +4 -0
  115. package/lib/module/icons/icSuccess.gif +0 -0
  116. package/lib/module/icons/index.js +5 -0
  117. package/lib/module/icons/index.js.map +1 -0
  118. package/lib/module/index.js +2 -0
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/module/manager/sdk/DispatchSDKManager.js +5 -3
  121. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  122. package/lib/module/manager/sdk/callbacksHandler.js +12 -3
  123. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  124. package/lib/module/manager/syncmanager/constants.js +2 -0
  125. package/lib/module/manager/syncmanager/constants.js.map +1 -1
  126. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  127. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  128. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  129. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  130. package/lib/module/models/sdk.js +2 -0
  131. package/lib/module/models/sdk.js.map +1 -1
  132. package/lib/module/ui/screens/ValidateOTPScreen.js +139 -11
  133. package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
  134. package/lib/module/utils/ApiUtils.js +118 -2
  135. package/lib/module/utils/ApiUtils.js.map +1 -1
  136. package/lib/module/utils/ExecTaskUtils.js +66 -7
  137. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  138. package/lib/module/utils/context/valdiateOTPContext.js +4 -0
  139. package/lib/module/utils/context/valdiateOTPContext.js.map +1 -0
  140. package/lib/module/utils/helper.js +1 -0
  141. package/lib/module/utils/helper.js.map +1 -1
  142. package/lib/module/utils/hooks/useTimer.js +67 -30
  143. package/lib/module/utils/hooks/useTimer.js.map +1 -1
  144. package/lib/typescript/components/executiontasks/collectPayment/PaymentStyles.d.ts +3 -3
  145. package/lib/typescript/components/executiontasks/deliver/DeliverETInput.d.ts +0 -1
  146. package/lib/typescript/components/executiontasks/scan/modalConstant.d.ts +0 -1
  147. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPET.d.ts +3 -3
  148. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPSchema.d.ts +169 -5
  149. package/lib/typescript/components/executiontasks/validateOTP/ValidateOtpStyles.d.ts +255 -0
  150. package/lib/typescript/components/executiontasks/validateOTP/components/ContactListView.d.ts +3 -0
  151. package/lib/typescript/components/executiontasks/validateOTP/components/OTPView.d.ts +3 -0
  152. package/lib/typescript/components/executiontasks/validateOTP/components/VerificationComplete.d.ts +3 -0
  153. package/lib/typescript/components/executiontasks/validateOTP/constants.d.ts +11 -4
  154. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ContactCard.d.ts +8 -0
  155. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ResendOTPButton.d.ts +12 -0
  156. package/lib/typescript/components/executiontasks/validateOTP/utils.d.ts +31 -7
  157. package/lib/typescript/components/utils/Scale.d.ts +4 -0
  158. package/lib/typescript/components/widgets/ConfirmCancelModal.d.ts +9 -0
  159. package/lib/typescript/components/widgets/SnackBarCustom.d.ts +4 -8
  160. package/lib/typescript/components/widgets/SplitTextInput.d.ts +1 -1
  161. package/lib/typescript/components/widgets/Timer.d.ts +3 -3
  162. package/lib/typescript/constants/apiConstants.d.ts +3 -0
  163. package/lib/typescript/constants/constants.d.ts +1 -0
  164. package/lib/typescript/icons/index.d.ts +4 -0
  165. package/lib/typescript/index.d.ts +2 -0
  166. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +4 -1
  167. package/lib/typescript/manager/syncmanager/constants.d.ts +2 -0
  168. package/lib/typescript/models/execTasks/ETConfig.d.ts +1 -1
  169. package/lib/typescript/models/sdk.d.ts +3 -0
  170. package/lib/typescript/network/GraphQLClient.d.ts +4 -4
  171. package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +2 -2
  172. package/lib/typescript/ui/screens/HttpRequestScreen.d.ts +0 -1
  173. package/lib/typescript/utils/ApiUtils.d.ts +6 -2
  174. package/lib/typescript/utils/ExecTaskUtils.d.ts +1 -0
  175. package/lib/typescript/utils/context/paymentContext.d.ts +0 -1
  176. package/lib/typescript/utils/context/valdiateOTPContext.d.ts +6 -0
  177. package/lib/typescript/utils/hooks/useModal.d.ts +0 -2
  178. package/lib/typescript/utils/hooks/useTimer.d.ts +7 -5
  179. package/package.json +46 -44
  180. package/src/components/dispatch/DispatchExecNavigator.tsx +1 -1
  181. package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +2 -2
  182. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +1 -1
  183. package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +654 -381
  184. package/src/components/executiontasks/validateOTP/ValidateOTPSchema.ts +193 -8
  185. package/src/components/executiontasks/validateOTP/ValidateOtpStyles.ts +296 -0
  186. package/src/components/executiontasks/validateOTP/components/ContactListView.tsx +109 -0
  187. package/src/components/executiontasks/validateOTP/components/OTPView.tsx +216 -0
  188. package/src/components/executiontasks/validateOTP/components/VerificationComplete.tsx +124 -0
  189. package/src/components/executiontasks/validateOTP/constants.ts +11 -4
  190. package/src/components/executiontasks/validateOTP/sub-components/ContactCard.tsx +72 -0
  191. package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +13 -7
  192. package/src/components/executiontasks/validateOTP/sub-components/ResendOTPButton.tsx +86 -0
  193. package/src/components/executiontasks/validateOTP/utils.ts +313 -143
  194. package/src/components/utils/Scale.ts +13 -0
  195. package/src/components/widgets/ConfirmCancelModal.tsx +49 -0
  196. package/src/components/widgets/SnackBarCustom.tsx +37 -13
  197. package/src/components/widgets/SplitTextInput.tsx +58 -21
  198. package/src/constants/apiConstants.ts +3 -0
  199. package/src/constants/constants.ts +2 -2
  200. package/src/icons/icExclamationcircleo_dark.svg +3 -0
  201. package/src/icons/icFailed.gif +0 -0
  202. package/src/icons/icRadioChecked.svg +4 -0
  203. package/src/icons/icRadioUnchecked.svg +4 -0
  204. package/src/icons/icSuccess.gif +0 -0
  205. package/src/icons/index.ts +5 -0
  206. package/src/index.tsx +2 -0
  207. package/src/manager/sdk/DispatchSDKManager.ts +6 -5
  208. package/src/manager/sdk/callbacksHandler.ts +29 -12
  209. package/src/manager/syncmanager/constants.ts +2 -0
  210. package/src/manager/syncmanager/document/DocumentHttpClient.ts +29 -29
  211. package/src/manager/syncmanager/document/DocumentSyncManager.ts +75 -84
  212. package/src/models/sdk.ts +6 -0
  213. package/src/ui/screens/ValidateOTPScreen.tsx +194 -32
  214. package/src/utils/ApiUtils.ts +131 -3
  215. package/src/utils/ExecTaskUtils.ts +77 -15
  216. package/src/utils/context/valdiateOTPContext.ts +9 -0
  217. package/src/utils/helper.ts +0 -1
  218. package/src/utils/hooks/useTimer.ts +94 -36
@@ -0,0 +1,194 @@
1
+ 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); }
2
+ /* eslint-disable react-native/no-inline-styles */
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ import React, { useEffect, useLayoutEffect } from 'react';
5
+ import { BackHandler, Text, View } from 'react-native';
6
+ import { useFocusEffect } from '@react-navigation/native';
7
+ import Icon from 'react-native-vector-icons/MaterialIcons';
8
+
9
+ // Components
10
+ import OTPInput from '../sub-components/OTPInput';
11
+ import { ResendOTPButton } from '../sub-components/ResendOTPButton';
12
+
13
+ // Styles
14
+ import styles from '../ValidateOtpStyles';
15
+
16
+ // Utilities
17
+ import { maskContact } from '../../../../utils/ExecTaskUtils';
18
+ import { resendOTP, updateResendCount, VALIDATE_OTP_SCREENS } from '../utils';
19
+ import useResendOtpTimer from '../../../../utils/hooks/useTimer';
20
+
21
+ // Types
22
+
23
+ import { SnackBarType } from '../../../../components/widgets/SnackBarCustom';
24
+ import { ERROR_RESEND_OTP, OTP_SENT_SUCCESSFULLY } from '../constants';
25
+
26
+ // Analytics
27
+ import { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';
28
+ import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../../analytics/sentry/SentrySdkConstants';
29
+ export const OTPView = props => {
30
+ var _props$resendConfig, _props$validateMessag, _props$selectedContac, _props$selectedContac2;
31
+ const {
32
+ formattedTime,
33
+ timer,
34
+ resetTimer
35
+ } = useResendOtpTimer((_props$resendConfig = props.resendConfig) === null || _props$resendConfig === void 0 ? void 0 : _props$resendConfig.enableDelay);
36
+ const handleBackPress = () => {
37
+ if (props.doorstepOTP && props.isContactVisited) {
38
+ props.setCurrentScreen(VALIDATE_OTP_SCREENS.CONTACT_LIST);
39
+ } else {
40
+ props.handleBackNavigation();
41
+ }
42
+ props.setOTPCode('');
43
+ return true;
44
+ };
45
+ const handleResendOtp = async () => {
46
+ var _props$orderData;
47
+ const payload = {
48
+ refId: props.refId,
49
+ meta: {
50
+ orderIds: (_props$orderData = props.orderData) === null || _props$orderData === void 0 ? void 0 : _props$orderData.map(order => {
51
+ var _order$displayInfo;
52
+ return order === null || order === void 0 || (_order$displayInfo = order.displayInfo) === null || _order$displayInfo === void 0 ? void 0 : _order$displayInfo.orderId;
53
+ })
54
+ },
55
+ ...(props.doorstepOTP && {
56
+ contactInfo: {
57
+ id: props.selectedContact.id,
58
+ mode: props.selectedContact.mode,
59
+ type: props.selectedContact.type,
60
+ index: props.selectedContact.index
61
+ }
62
+ })
63
+ };
64
+ try {
65
+ // if (props.doorstepOTP && !props.isContactVisited) {
66
+ // props.setCurrentScreen(VALIDATE_OTP_SCREENS.CONTACT_LIST);// required may be in future
67
+ // } else {
68
+ props.setOTPCode('');
69
+ // Attempt to resend OTP
70
+ const response = await resendOTP(payload, {
71
+ ...props,
72
+ domain: props.domain
73
+ });
74
+ if (!(response !== null && response !== void 0 && response.status) || !response) {
75
+ var _response$data;
76
+ props.setSnackBar({
77
+ show: true,
78
+ 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) || ERROR_RESEND_OTP,
79
+ type: SnackBarType.OTP_FAILED
80
+ });
81
+ return;
82
+ } else {
83
+ var _response$data2, _response$additionalI;
84
+ const resendCountValue = Number((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.resendCount) || (response === null || response === void 0 || (_response$additionalI = response.additionalInfo) === null || _response$additionalI === void 0 ? void 0 : _response$additionalI.resendCount)) || props.resendCount + 1;
85
+ props.setResendCount(resendCountValue);
86
+ await updateResendCount(resendCountValue);
87
+ props.setSnackBar({
88
+ show: true,
89
+ message: OTP_SENT_SUCCESSFULLY,
90
+ type: SnackBarType.OTP_SUCCESS
91
+ });
92
+
93
+ // Reset the timer
94
+ resetTimer();
95
+ }
96
+ const cta = props.resendConfig.buttonTitle;
97
+ fireEventWithScreenName({
98
+ severityLevel: SeverityLevelValue.LOG,
99
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
100
+ screenName: ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
101
+ cta: cta
102
+ });
103
+ // }
104
+ } catch (error) {
105
+ console.error('Error during OTP generation or timer reset:', error);
106
+ props.setSnackBar({
107
+ show: true,
108
+ message: ERROR_RESEND_OTP,
109
+ type: SnackBarType.OTP_FAILED
110
+ });
111
+ }
112
+ return;
113
+ };
114
+
115
+ // *reset timer on render
116
+ useEffect(() => {
117
+ resetTimer();
118
+ // eslint-disable-next-line react-hooks/exhaustive-deps
119
+ }, []);
120
+
121
+ // Handle back-button click
122
+ useFocusEffect(React.useCallback(() => {
123
+ BackHandler.addEventListener('hardwareBackPress', handleBackPress);
124
+ return () => BackHandler.removeEventListener('hardwareBackPress', handleBackPress);
125
+ // eslint-disable-next-line react-hooks/exhaustive-deps
126
+ }, []));
127
+ useLayoutEffect(() => {
128
+ props.navigation.setOptions({
129
+ title: props.title,
130
+ headerLeft: () => {
131
+ return /*#__PURE__*/React.createElement(Icon, {
132
+ onPress: () => {
133
+ handleBackPress();
134
+ const cta = 'Arrow Back';
135
+ fireEventWithScreenName({
136
+ severityLevel: SeverityLevelValue.LOG,
137
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
138
+ screenName: ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,
139
+ cta: cta
140
+ });
141
+ },
142
+ name: "arrow-back",
143
+ color: 'black',
144
+ size: 25,
145
+ style: {
146
+ paddingRight: 15,
147
+ paddingTop: 5
148
+ }
149
+ });
150
+ }
151
+ });
152
+ // eslint-disable-next-line react-hooks/exhaustive-deps
153
+ }, []);
154
+
155
+ // *render error message for OTP input
156
+ const renderErrorMessage = () => {
157
+ return props.errorMessage ? /*#__PURE__*/React.createElement(Text, {
158
+ style: styles.errorMessage
159
+ }, props.errorMessage) : null;
160
+ };
161
+
162
+ // *render retry button
163
+ const renderRetryButton = () => {
164
+ const enableRetry = props.resendOTP.enableResends;
165
+ if (enableRetry) {
166
+ return /*#__PURE__*/React.createElement(ResendOTPButton, _extends({}, props, {
167
+ formattedTime: formattedTime,
168
+ handleResendOtp: handleResendOtp,
169
+ timer: timer
170
+ }));
171
+ } else return null;
172
+ };
173
+ return /*#__PURE__*/React.createElement(View, {
174
+ style: {
175
+ flex: 1
176
+ }
177
+ }, /*#__PURE__*/React.createElement(View, {
178
+ style: styles.titleContainer
179
+ }, /*#__PURE__*/React.createElement(Text, {
180
+ style: styles.titleText
181
+ }, (props === null || props === void 0 || (_props$validateMessag = props.validateMessage) === null || _props$validateMessag === void 0 || (_props$validateMessag = _props$validateMessag.toString()) === null || _props$validateMessag === void 0 ? void 0 : _props$validateMessag.length) > 0 ? props.validateMessage : 'Enter OTP received by consignee')), /*#__PURE__*/React.createElement(View, {
182
+ style: styles.otpContainer
183
+ }, /*#__PURE__*/React.createElement(Text, {
184
+ style: styles.otpTextMsg
185
+ }, "OTP sent to", ' ', (props === null || props === void 0 || (_props$selectedContac = props.selectedContact) === null || _props$selectedContac === void 0 ? void 0 : _props$selectedContac.value) && maskContact(props === null || props === void 0 || (_props$selectedContac2 = props.selectedContact) === null || _props$selectedContac2 === void 0 ? void 0 : _props$selectedContac2.value)), /*#__PURE__*/React.createElement(OTPInput, {
186
+ input: props.otpInputConfig,
187
+ otpCode: props.otpCode,
188
+ setOTPCode: props.setOTPCode,
189
+ hasError: props.hasError,
190
+ setHasError: props.setHasError,
191
+ setErrorMessage: props.setErrorMessage
192
+ }), renderErrorMessage(), renderRetryButton()));
193
+ };
194
+ //# sourceMappingURL=OTPView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useLayoutEffect","BackHandler","Text","View","useFocusEffect","Icon","OTPInput","ResendOTPButton","styles","maskContact","resendOTP","updateResendCount","VALIDATE_OTP_SCREENS","useResendOtpTimer","SnackBarType","ERROR_RESEND_OTP","OTP_SENT_SUCCESSFULLY","fireEventWithScreenName","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","OTPView","props","_props$resendConfig","_props$validateMessag","_props$selectedContac","_props$selectedContac2","formattedTime","timer","resetTimer","resendConfig","enableDelay","handleBackPress","doorstepOTP","isContactVisited","setCurrentScreen","CONTACT_LIST","handleBackNavigation","setOTPCode","handleResendOtp","_props$orderData","payload","refId","meta","orderIds","orderData","map","order","_order$displayInfo","displayInfo","orderId","contactInfo","id","selectedContact","mode","type","index","response","domain","status","_response$data","setSnackBar","show","message","data","result","OTP_FAILED","_response$data2","_response$additionalI","resendCountValue","Number","resendCount","additionalInfo","setResendCount","OTP_SUCCESS","cta","buttonTitle","severityLevel","LOG","eventName","BUTTON_CLICKED","screenName","VALIDATE_OTP_ET_SCREEN","error","console","useCallback","addEventListener","removeEventListener","navigation","setOptions","title","headerLeft","createElement","onPress","name","color","size","style","paddingRight","paddingTop","renderErrorMessage","errorMessage","renderRetryButton","enableRetry","enableResends","_extends","flex","titleContainer","titleText","validateMessage","toString","length","otpContainer","otpTextMsg","value","input","otpInputConfig","otpCode","hasError","setHasError","setErrorMessage"],"sources":["OTPView.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { FC, useEffect, useLayoutEffect } from 'react';\nimport { BackHandler, Text, View } from 'react-native';\nimport { useFocusEffect } from '@react-navigation/native';\nimport Icon from 'react-native-vector-icons/MaterialIcons';\n\n// Components\nimport OTPInput from '../sub-components/OTPInput';\nimport { ResendOTPButton } from '../sub-components/ResendOTPButton';\n\n// Styles\nimport styles from '../ValidateOtpStyles';\n\n// Utilities\nimport { maskContact } from '../../../../utils/ExecTaskUtils';\nimport { resendOTP, updateResendCount, VALIDATE_OTP_SCREENS } from '../utils';\nimport useResendOtpTimer from '../../../../utils/hooks/useTimer';\n\n// Types\nimport { ValidateOTPInput } from '../ValidateOTPSchema';\nimport { SnackBarType } from '../../../../components/widgets/SnackBarCustom';\nimport { ERROR_RESEND_OTP, OTP_SENT_SUCCESSFULLY } from '../constants';\n\n// Analytics\nimport { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';\nimport {\n ScreenNameSdkConstants,\n SentryEventNameSdkConstants,\n SeverityLevelValue,\n} from '../../../../analytics/sentry/SentrySdkConstants';\n\nexport const OTPView: FC<ValidateOTPInput> = (props) => {\n const { formattedTime, timer, resetTimer } = useResendOtpTimer(\n props.resendConfig?.enableDelay\n );\n\n const handleBackPress = () => {\n if (props.doorstepOTP && props.isContactVisited) {\n props.setCurrentScreen(VALIDATE_OTP_SCREENS.CONTACT_LIST);\n } else {\n props.handleBackNavigation();\n }\n props.setOTPCode('');\n return true;\n };\n\n const handleResendOtp = async () => {\n const payload = {\n refId: props.refId,\n meta: {\n orderIds: props.orderData?.map((order) => order?.displayInfo?.orderId),\n },\n ...(props.doorstepOTP && {\n contactInfo: {\n id: props.selectedContact.id,\n mode: props.selectedContact.mode,\n type: props.selectedContact.type,\n index: props.selectedContact.index,\n },\n }),\n };\n try {\n // if (props.doorstepOTP && !props.isContactVisited) {\n // props.setCurrentScreen(VALIDATE_OTP_SCREENS.CONTACT_LIST);// required may be in future\n // } else {\n props.setOTPCode('');\n // Attempt to resend OTP\n const response = await resendOTP(payload, {\n ...props,\n domain: props.domain,\n });\n\n if (!response?.status || !response) {\n props.setSnackBar({\n show: true,\n message: response?.data?.result?.message || ERROR_RESEND_OTP,\n type: SnackBarType.OTP_FAILED,\n });\n return;\n } else {\n const resendCountValue =\n Number(\n response?.data?.result?.resendCount ||\n response?.additionalInfo?.resendCount\n ) || props.resendCount + 1;\n\n props.setResendCount(resendCountValue);\n await updateResendCount(resendCountValue);\n\n props.setSnackBar({\n show: true,\n message: OTP_SENT_SUCCESSFULLY,\n type: SnackBarType.OTP_SUCCESS,\n });\n\n // Reset the timer\n resetTimer();\n }\n const cta = props.resendConfig.buttonTitle;\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,\n screenName: ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,\n cta: cta,\n });\n // }\n } catch (error) {\n console.error('Error during OTP generation or timer reset:', error);\n props.setSnackBar({\n show: true,\n message: ERROR_RESEND_OTP,\n type: SnackBarType.OTP_FAILED,\n });\n }\n return;\n };\n\n // *reset timer on render\n useEffect(() => {\n resetTimer();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Handle back-button click\n useFocusEffect(\n React.useCallback(() => {\n BackHandler.addEventListener('hardwareBackPress', handleBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', handleBackPress);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n );\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Icon\n onPress={() => {\n handleBackPress();\n const cta = 'Arrow Back';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,\n screenName: ScreenNameSdkConstants.VALIDATE_OTP_ET_SCREEN,\n cta: cta,\n });\n }}\n name=\"arrow-back\"\n color={'black'}\n size={25}\n style={{\n paddingRight: 15,\n paddingTop: 5,\n }}\n />\n );\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // *render error message for OTP input\n const renderErrorMessage = () => {\n return props.errorMessage ? (\n <Text style={styles.errorMessage}>{props.errorMessage}</Text>\n ) : null;\n };\n\n // *render retry button\n const renderRetryButton = () => {\n const enableRetry = props.resendOTP.enableResends;\n\n if (enableRetry) {\n return (\n <ResendOTPButton\n {...props}\n formattedTime={formattedTime}\n handleResendOtp={handleResendOtp}\n timer={timer}\n />\n );\n } else return null;\n };\n\n return (\n <View style={{ flex: 1 }}>\n <View style={styles.titleContainer}>\n <Text style={styles.titleText}>\n {props?.validateMessage?.toString()?.length > 0\n ? props.validateMessage\n : 'Enter OTP received by consignee'}\n </Text>\n </View>\n <View style={styles.otpContainer}>\n <Text style={styles.otpTextMsg}>\n OTP sent to{' '}\n {props?.selectedContact?.value &&\n maskContact(props?.selectedContact?.value)}\n </Text>\n <OTPInput\n input={props.otpInputConfig}\n otpCode={props.otpCode}\n setOTPCode={props.setOTPCode}\n hasError={props.hasError}\n setHasError={props.setHasError}\n setErrorMessage={props.setErrorMessage}\n />\n {renderErrorMessage()}\n {renderRetryButton()}\n </View>\n </View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable react-native/no-inline-styles */
3
+ import React, { useEffect, useLayoutEffect } from 'react';
4
+ import { Text, View } from 'react-native';
5
+
6
+ // Styles
7
+ import styles from '../ValidateOtpStyles';
8
+
9
+ // Components
10
+ import FastImage from 'react-native-fast-image';
11
+
12
+ // Utilities
13
+ import { getBaseETResponse } from '../../../../utils/ExecTaskUtils';
14
+ import { getEventCodeByET } from '../../../../manager/dispatchCodes/EventCodeContainer';
15
+ import { RETRY_LIMIT_REACHED_CODE } from '../../../../constants/constants';
16
+
17
+ // Types
18
+ import { BaseEventCodes, EntityCode, ExecutionTaskID } from '../../../../models/execTasks/ETConfig';
19
+ const DefaultSubmitTimeout = 3000;
20
+ const VerificationComplete = props => {
21
+ // TO hide header for modal screen
22
+ useLayoutEffect(() => {
23
+ props.navigation.setOptions({
24
+ headerShown: false
25
+ });
26
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27
+ }, []);
28
+ const sendSuccessOutput = async () => {
29
+ var _props$applicableReas;
30
+ const _etOutput = await getBaseETResponse(EntityCode.VALIDATE_OTP_ET, true, getEventCodeByET(ExecutionTaskID.VALIDATE_OTP_ET, true, (_props$applicableReas = props.applicableReasons) === null || _props$applicableReas === void 0 ? void 0 : _props$applicableReas.success), '', props.mergedObjectiveId, ExecutionTaskID.VALIDATE_OTP_ET);
31
+ setTimeout(async () => {
32
+ props.onSubmitET({
33
+ ..._etOutput,
34
+ retryCount: props.retryCount
35
+ });
36
+ }, DefaultSubmitTimeout);
37
+ };
38
+ const sendFailedOutput = async () => {
39
+ const _etOutput = await getBaseETResponse(EntityCode.VALIDATE_OTP_ET, false, BaseEventCodes.ENTITY_FAILURE, RETRY_LIMIT_REACHED_CODE, props.mergedObjectiveId, ExecutionTaskID.VALIDATE_OTP_ET);
40
+ setTimeout(async () => {
41
+ props.onSubmitET({
42
+ ..._etOutput,
43
+ retryCount: props.retryCount
44
+ });
45
+ }, DefaultSubmitTimeout);
46
+ };
47
+ useEffect(() => {
48
+ props.setLoading(false);
49
+ if (props.success) {
50
+ sendSuccessOutput();
51
+ } else {
52
+ sendFailedOutput();
53
+ }
54
+ // eslint-disable-next-line react-hooks/exhaustive-deps
55
+ }, []);
56
+ const renderSuccessCard = () => {
57
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FastImage, {
58
+ source: require('../../../../icons/icSuccess.gif'),
59
+ style: {
60
+ height: 116,
61
+ width: 116
62
+ } // Use consistent dimensions here
63
+ ,
64
+ resizeMode: "contain" // Ensures the GIF is displayed properly without distortion
65
+ }), /*#__PURE__*/React.createElement(Text, {
66
+ style: styles.otpResponseText
67
+ }, "OTP verified successfully!"));
68
+ };
69
+ const renderFailedCard = () => {
70
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FastImage, {
71
+ source: require('../../../../icons/icFailed.gif'),
72
+ style: {
73
+ height: 116,
74
+ width: 116
75
+ } // Use consistent dimensions here
76
+ ,
77
+ resizeMode: "contain" // Ensures the GIF is displayed properly without distortion
78
+ }), /*#__PURE__*/React.createElement(Text, {
79
+ style: styles.otpResponseText
80
+ }, "OTP verification Failed!"));
81
+ };
82
+ return /*#__PURE__*/React.createElement(View, {
83
+ style: {
84
+ flex: 1
85
+ }
86
+ }, /*#__PURE__*/React.createElement(View, {
87
+ style: {
88
+ flex: 1,
89
+ justifyContent: 'center'
90
+ }
91
+ }, /*#__PURE__*/React.createElement(View, {
92
+ style: styles.responseCard
93
+ }, props.success ? renderSuccessCard() : renderFailedCard())));
94
+ };
95
+ export default VerificationComplete;
96
+ //# sourceMappingURL=VerificationComplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useLayoutEffect","Text","View","styles","FastImage","getBaseETResponse","getEventCodeByET","RETRY_LIMIT_REACHED_CODE","BaseEventCodes","EntityCode","ExecutionTaskID","DefaultSubmitTimeout","VerificationComplete","props","navigation","setOptions","headerShown","sendSuccessOutput","_props$applicableReas","_etOutput","VALIDATE_OTP_ET","applicableReasons","success","mergedObjectiveId","setTimeout","onSubmitET","retryCount","sendFailedOutput","ENTITY_FAILURE","setLoading","renderSuccessCard","createElement","Fragment","source","require","style","height","width","resizeMode","otpResponseText","renderFailedCard","flex","justifyContent","responseCard"],"sources":["VerificationComplete.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-native/no-inline-styles */\nimport React, { FC, useEffect, useLayoutEffect } from 'react';\nimport { Text, View } from 'react-native';\n\n// Styles\nimport styles from '../ValidateOtpStyles';\n\n// Components\nimport FastImage from 'react-native-fast-image';\n\n// Utilities\nimport { getBaseETResponse } from '../../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../../manager/dispatchCodes/EventCodeContainer';\nimport { RETRY_LIMIT_REACHED_CODE } from '../../../../constants/constants';\n\n// Types\nimport {\n BaseEventCodes,\n EntityCode,\n ExecutionTaskID,\n} from '../../../../models/execTasks/ETConfig';\n\nconst DefaultSubmitTimeout = 3000;\n\nconst VerificationComplete: FC<any> = (props) => {\n // TO hide header for modal screen\n useLayoutEffect(() => {\n props.navigation.setOptions({\n headerShown: false,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sendSuccessOutput = async () => {\n const _etOutput = await getBaseETResponse(\n EntityCode.VALIDATE_OTP_ET,\n true,\n getEventCodeByET(\n ExecutionTaskID.VALIDATE_OTP_ET,\n true,\n props.applicableReasons?.success\n ),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.VALIDATE_OTP_ET\n );\n setTimeout(async () => {\n props.onSubmitET({\n ..._etOutput,\n retryCount: props.retryCount,\n });\n }, DefaultSubmitTimeout);\n };\n\n const sendFailedOutput = async () => {\n const _etOutput = await getBaseETResponse(\n EntityCode.VALIDATE_OTP_ET,\n false,\n BaseEventCodes.ENTITY_FAILURE,\n RETRY_LIMIT_REACHED_CODE,\n props.mergedObjectiveId,\n ExecutionTaskID.VALIDATE_OTP_ET\n );\n setTimeout(async () => {\n props.onSubmitET({\n ..._etOutput,\n retryCount: props.retryCount,\n });\n }, DefaultSubmitTimeout);\n };\n\n useEffect(() => {\n props.setLoading(false);\n if (props.success) {\n sendSuccessOutput();\n } else {\n sendFailedOutput();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const renderSuccessCard = () => {\n return (\n <>\n <FastImage\n source={require('../../../../icons/icSuccess.gif')}\n style={{ height: 116, width: 116 }} // Use consistent dimensions here\n resizeMode=\"contain\" // Ensures the GIF is displayed properly without distortion\n />\n <Text style={styles.otpResponseText}>OTP verified successfully!</Text>\n </>\n );\n };\n\n const renderFailedCard = () => {\n return (\n <>\n <FastImage\n source={require('../../../../icons/icFailed.gif')}\n style={{ height: 116, width: 116 }} // Use consistent dimensions here\n resizeMode=\"contain\" // Ensures the GIF is displayed properly without distortion\n />\n <Text style={styles.otpResponseText}>OTP verification Failed!</Text>\n </>\n );\n };\n\n return (\n <View style={{ flex: 1 }}>\n <View\n style={{\n flex: 1,\n justifyContent: 'center',\n }}\n >\n <View style={styles.responseCard}>\n {props.success ? renderSuccessCard() : renderFailedCard()}\n </View>\n </View>\n </View>\n );\n};\nexport default VerificationComplete;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,KAAK,IAAQC,SAAS,EAAEC,eAAe,QAAQ,OAAO;AAC7D,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;;AAEzC;AACA,OAAOC,MAAM,MAAM,sBAAsB;;AAEzC;AACA,OAAOC,SAAS,MAAM,yBAAyB;;AAE/C;AACA,SAASC,iBAAiB,QAAQ,iCAAiC;AACnE,SAASC,gBAAgB,QAAQ,sDAAsD;AACvF,SAASC,wBAAwB,QAAQ,iCAAiC;;AAE1E;AACA,SACEC,cAAc,EACdC,UAAU,EACVC,eAAe,QACV,uCAAuC;AAE9C,MAAMC,oBAAoB,GAAG,IAAI;AAEjC,MAAMC,oBAA6B,GAAIC,KAAK,IAAK;EAC/C;EACAb,eAAe,CAAC,MAAM;IACpBa,KAAK,CAACC,UAAU,CAACC,UAAU,CAAC;MAC1BC,WAAW,EAAE;IACf,CAAC,CAAC;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IAAA,IAAAC,qBAAA;IACpC,MAAMC,SAAS,GAAG,MAAMd,iBAAiB,CACvCI,UAAU,CAACW,eAAe,EAC1B,IAAI,EACJd,gBAAgB,CACdI,eAAe,CAACU,eAAe,EAC/B,IAAI,GAAAF,qBAAA,GACJL,KAAK,CAACQ,iBAAiB,cAAAH,qBAAA,uBAAvBA,qBAAA,CAAyBI,OAC3B,CAAC,EACD,EAAE,EACFT,KAAK,CAACU,iBAAiB,EACvBb,eAAe,CAACU,eAClB,CAAC;IACDI,UAAU,CAAC,YAAY;MACrBX,KAAK,CAACY,UAAU,CAAC;QACf,GAAGN,SAAS;QACZO,UAAU,EAAEb,KAAK,CAACa;MACpB,CAAC,CAAC;IACJ,CAAC,EAAEf,oBAAoB,CAAC;EAC1B,CAAC;EAED,MAAMgB,gBAAgB,GAAG,MAAAA,CAAA,KAAY;IACnC,MAAMR,SAAS,GAAG,MAAMd,iBAAiB,CACvCI,UAAU,CAACW,eAAe,EAC1B,KAAK,EACLZ,cAAc,CAACoB,cAAc,EAC7BrB,wBAAwB,EACxBM,KAAK,CAACU,iBAAiB,EACvBb,eAAe,CAACU,eAClB,CAAC;IACDI,UAAU,CAAC,YAAY;MACrBX,KAAK,CAACY,UAAU,CAAC;QACf,GAAGN,SAAS;QACZO,UAAU,EAAEb,KAAK,CAACa;MACpB,CAAC,CAAC;IACJ,CAAC,EAAEf,oBAAoB,CAAC;EAC1B,CAAC;EAEDZ,SAAS,CAAC,MAAM;IACdc,KAAK,CAACgB,UAAU,CAAC,KAAK,CAAC;IACvB,IAAIhB,KAAK,CAACS,OAAO,EAAE;MACjBL,iBAAiB,CAAC,CAAC;IACrB,CAAC,MAAM;MACLU,gBAAgB,CAAC,CAAC;IACpB;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,oBACEhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,qBACElC,KAAA,CAAAiC,aAAA,CAAC3B,SAAS;MACR6B,MAAM,EAAEC,OAAO,CAAC,iCAAiC,CAAE;MACnDC,KAAK,EAAE;QAAEC,MAAM,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAI,CAAE,CAAC;MAAA;MACpCC,UAAU,EAAC,SAAS,CAAC;IAAA,CACtB,CAAC,eACFxC,KAAA,CAAAiC,aAAA,CAAC9B,IAAI;MAACkC,KAAK,EAAEhC,MAAM,CAACoC;IAAgB,GAAC,4BAAgC,CACrE,CAAC;EAEP,CAAC;EAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,oBACE1C,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,qBACElC,KAAA,CAAAiC,aAAA,CAAC3B,SAAS;MACR6B,MAAM,EAAEC,OAAO,CAAC,gCAAgC,CAAE;MAClDC,KAAK,EAAE;QAAEC,MAAM,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAI,CAAE,CAAC;MAAA;MACpCC,UAAU,EAAC,SAAS,CAAC;IAAA,CACtB,CAAC,eACFxC,KAAA,CAAAiC,aAAA,CAAC9B,IAAI;MAACkC,KAAK,EAAEhC,MAAM,CAACoC;IAAgB,GAAC,0BAA8B,CACnE,CAAC;EAEP,CAAC;EAED,oBACEzC,KAAA,CAAAiC,aAAA,CAAC7B,IAAI;IAACiC,KAAK,EAAE;MAAEM,IAAI,EAAE;IAAE;EAAE,gBACvB3C,KAAA,CAAAiC,aAAA,CAAC7B,IAAI;IACHiC,KAAK,EAAE;MACLM,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE;IAClB;EAAE,gBAEF5C,KAAA,CAAAiC,aAAA,CAAC7B,IAAI;IAACiC,KAAK,EAAEhC,MAAM,CAACwC;EAAa,GAC9B9B,KAAK,CAACS,OAAO,GAAGQ,iBAAiB,CAAC,CAAC,GAAGU,gBAAgB,CAAC,CACpD,CACF,CACF,CAAC;AAEX,CAAC;AACD,eAAe5B,oBAAoB","ignoreList":[]}
@@ -1,7 +1,13 @@
1
- export const INVALID_OTP = `Wrong or expired OTP. Please try again.`;
1
+ export const INVALID_OTP = `Entered incorrect OTP. <length> attempts left.`;
2
+ export const INVALID_OTP_ONE_ATTEMPT_LEFT = `OTP verification failed! Please enter the correct OTP within 1 attempt.`;
2
3
  export const INVALID_OTP_LENGTH = `OTP should be of length <length>`;
3
4
  export const INVALID_REGEX = `Invalid OTP entered. Must match the expected pattern.`;
4
- export const ERROR_GENERATING_OTP = `Error occured while Generating OTP`;
5
+ export const ERROR_GENERATING_OTP = `Unable to send OTP. Please try again.`;
6
+ export const UNABLE_TO_SEND_OTP = `Unable to send new OTP as maximum limit reached.`;
7
+ export const ERROR_RESEND_OTP = 'Failed to resend OTP. Try again.';
8
+ export const ERROR_VALIDATE_OTP = 'Failed to validate OTP. Try again.';
9
+ export const OTP_SENT_SUCCESSFULLY = 'OTP sent to the customer!';
10
+ export const OTP_VERIFIED_SUCCESSFULLY = 'OTP verified successfully!';
5
11
  export const mobileSVG = `<svg width="164" height="164" viewBox="0 0 164 164" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
6
12
  <mask id="mask0_3391_199849" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="164" height="164">
7
13
  <rect width="164" height="164" fill="url(#pattern0)"/>
@@ -19,7 +25,8 @@ export const mobileSVG = `<svg width="164" height="164" viewBox="0 0 164 164" fi
19
25
  `;
20
26
  export const DEFAULT_RETRY_CONFIG = {
21
27
  buttonTitle: 'Resend OTP',
22
- delay: 10,
23
- maxAttempt: 3
28
+ enableResends: true,
29
+ enableDelay: 60,
30
+ maxResends: 5
24
31
  };
25
32
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["INVALID_OTP","INVALID_OTP_LENGTH","INVALID_REGEX","ERROR_GENERATING_OTP","mobileSVG","DEFAULT_RETRY_CONFIG","buttonTitle","delay","maxAttempt"],"sources":["constants.ts"],"sourcesContent":["export const INVALID_OTP = `Wrong or expired OTP. Please try again.`;\nexport const INVALID_OTP_LENGTH = `OTP should be of length <length>`;\nexport const INVALID_REGEX = `Invalid OTP entered. Must match the expected pattern.`;\nexport const ERROR_GENERATING_OTP = `Error occured while Generating OTP`;\nexport const mobileSVG = `<svg width=\"164\" height=\"164\" viewBox=\"0 0 164 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<mask id=\"mask0_3391_199849\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"164\" height=\"164\">\n<rect width=\"164\" height=\"164\" fill=\"url(#pattern0)\"/>\n</mask>\n<g mask=\"url(#mask0_3391_199849)\">\n<rect x=\"-28\" y=\"-29\" width=\"221\" height=\"221\" fill=\"#5B80F7\"/>\n</g>\n<defs>\n<pattern id=\"pattern0\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n<use xlink:href=\"#image0_3391_199849\" transform=\"scale(0.0078125)\"/>\n</pattern>\n<image id=\"image0_3391_199849\" width=\"128\" height=\"128\" xlink:href=\"data:image/png;base64,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\"/>\n</defs>\n</svg>\n`;\nexport const DEFAULT_RETRY_CONFIG = {\n buttonTitle: 'Resend OTP',\n delay: 10,\n maxAttempt: 3,\n};\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,yCAAyC;AACpE,OAAO,MAAMC,kBAAkB,GAAG,kCAAkC;AACpE,OAAO,MAAMC,aAAa,GAAG,uDAAuD;AACpF,OAAO,MAAMC,oBAAoB,GAAG,oCAAoC;AACxE,OAAO,MAAMC,SAAS,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,OAAO,MAAMC,oBAAoB,GAAG;EAClCC,WAAW,EAAE,YAAY;EACzBC,KAAK,EAAE,EAAE;EACTC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["INVALID_OTP","INVALID_OTP_ONE_ATTEMPT_LEFT","INVALID_OTP_LENGTH","INVALID_REGEX","ERROR_GENERATING_OTP","UNABLE_TO_SEND_OTP","ERROR_RESEND_OTP","ERROR_VALIDATE_OTP","OTP_SENT_SUCCESSFULLY","OTP_VERIFIED_SUCCESSFULLY","mobileSVG","DEFAULT_RETRY_CONFIG","buttonTitle","enableResends","enableDelay","maxResends"],"sources":["constants.ts"],"sourcesContent":["export const INVALID_OTP = `Entered incorrect OTP. <length> attempts left.`;\nexport const INVALID_OTP_ONE_ATTEMPT_LEFT = `OTP verification failed! Please enter the correct OTP within 1 attempt.`;\nexport const INVALID_OTP_LENGTH = `OTP should be of length <length>`;\nexport const INVALID_REGEX = `Invalid OTP entered. Must match the expected pattern.`;\nexport const ERROR_GENERATING_OTP = `Unable to send OTP. Please try again.`;\nexport const UNABLE_TO_SEND_OTP = `Unable to send new OTP as maximum limit reached.`;\nexport const ERROR_RESEND_OTP = 'Failed to resend OTP. Try again.';\nexport const ERROR_VALIDATE_OTP = 'Failed to validate OTP. Try again.';\nexport const OTP_SENT_SUCCESSFULLY = 'OTP sent to the customer!';\nexport const OTP_VERIFIED_SUCCESSFULLY = 'OTP verified successfully!';\nexport const mobileSVG = `<svg width=\"164\" height=\"164\" viewBox=\"0 0 164 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<mask id=\"mask0_3391_199849\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"164\" height=\"164\">\n<rect width=\"164\" height=\"164\" fill=\"url(#pattern0)\"/>\n</mask>\n<g mask=\"url(#mask0_3391_199849)\">\n<rect x=\"-28\" y=\"-29\" width=\"221\" height=\"221\" fill=\"#5B80F7\"/>\n</g>\n<defs>\n<pattern id=\"pattern0\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n<use xlink:href=\"#image0_3391_199849\" transform=\"scale(0.0078125)\"/>\n</pattern>\n<image id=\"image0_3391_199849\" width=\"128\" height=\"128\" xlink:href=\"data:image/png;base64,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\"/>\n</defs>\n</svg>\n`;\nexport const DEFAULT_RETRY_CONFIG = {\n buttonTitle: 'Resend OTP',\n enableResends: true,\n enableDelay: 60,\n maxResends: 5,\n};\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,gDAAgD;AAC3E,OAAO,MAAMC,4BAA4B,GAAG,yEAAyE;AACrH,OAAO,MAAMC,kBAAkB,GAAG,kCAAkC;AACpE,OAAO,MAAMC,aAAa,GAAG,uDAAuD;AACpF,OAAO,MAAMC,oBAAoB,GAAG,uCAAuC;AAC3E,OAAO,MAAMC,kBAAkB,GAAG,kDAAkD;AACpF,OAAO,MAAMC,gBAAgB,GAAG,kCAAkC;AAClE,OAAO,MAAMC,kBAAkB,GAAG,oCAAoC;AACtE,OAAO,MAAMC,qBAAqB,GAAG,2BAA2B;AAChE,OAAO,MAAMC,yBAAyB,GAAG,4BAA4B;AACrE,OAAO,MAAMC,SAAS,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,OAAO,MAAMC,oBAAoB,GAAG;EAClCC,WAAW,EAAE,YAAY;EACzBC,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ /* eslint-disable react-native/no-inline-styles */
2
+ import React from 'react';
3
+ import { Text, TouchableOpacity, View } from 'react-native';
4
+
5
+ // Styles
6
+ import styles from '../ValidateOtpStyles';
7
+
8
+ // Types
9
+
10
+ // Icons
11
+ import { RadioCheckedIcon, RadioUncheckedIcon } from '../../../../icons';
12
+
13
+ // Utilities
14
+ import { isNotNullOrEmpty, truncateOrderId } from '../utils';
15
+ import { sHeight } from '../../../../components/utils/Scale';
16
+ import { maskContact } from '../../../../utils/ExecTaskUtils';
17
+ export const ContactCard = props => {
18
+ const {
19
+ handleSelectContact,
20
+ contactDetails
21
+ } = props;
22
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
23
+ activeOpacity: 0.75,
24
+ style: [styles.contactCard, (contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.isSelected) && styles.selectedCard],
25
+ onPress: () => handleSelectContact(contactDetails)
26
+ }, /*#__PURE__*/React.createElement(View, {
27
+ style: [styles.rowContainer]
28
+ }, contactDetails !== null && contactDetails !== void 0 && contactDetails.isSelected ? /*#__PURE__*/React.createElement(RadioCheckedIcon, {
29
+ style: [styles.radioIcon]
30
+ }) : /*#__PURE__*/React.createElement(RadioUncheckedIcon, {
31
+ style: [styles.radioIcon]
32
+ }), /*#__PURE__*/React.createElement(View, {
33
+ style: styles.columnContainer
34
+ }, /*#__PURE__*/React.createElement(View, {
35
+ style: [styles.rowContainer, {
36
+ marginBottom: 8
37
+ }]
38
+ }, /*#__PURE__*/React.createElement(Text, {
39
+ style: [styles.contactTitle, {
40
+ padding: 0,
41
+ margin: 0
42
+ }]
43
+ }, (contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.value) && maskContact(contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.value))), isNotNullOrEmpty(contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.orderId) && /*#__PURE__*/React.createElement(View, {
44
+ style: styles.rowContainer
45
+ }, /*#__PURE__*/React.createElement(Text, {
46
+ style: [styles.titleText, styles.contactLabel]
47
+ }, "Order ID"), /*#__PURE__*/React.createElement(Text, {
48
+ style: [styles.titleText, styles.contactText]
49
+ }, (contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.orderId) && truncateOrderId(contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.orderId))), isNotNullOrEmpty(contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.orderFrom) && /*#__PURE__*/React.createElement(View, {
50
+ style: [styles.rowContainer, {
51
+ marginTop: sHeight(4)
52
+ }]
53
+ }, /*#__PURE__*/React.createElement(Text, {
54
+ style: [styles.titleText, styles.contactLabel]
55
+ }, "Order From"), /*#__PURE__*/React.createElement(Text, {
56
+ style: [styles.titleText, styles.contactText]
57
+ }, contactDetails === null || contactDetails === void 0 ? void 0 : contactDetails.orderFrom)))));
58
+ };
59
+ //# sourceMappingURL=ContactCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","TouchableOpacity","View","styles","RadioCheckedIcon","RadioUncheckedIcon","isNotNullOrEmpty","truncateOrderId","sHeight","maskContact","ContactCard","props","handleSelectContact","contactDetails","createElement","activeOpacity","style","contactCard","isSelected","selectedCard","onPress","rowContainer","radioIcon","columnContainer","marginBottom","contactTitle","padding","margin","value","orderId","titleText","contactLabel","contactText","orderFrom","marginTop"],"sources":["ContactCard.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Text, TouchableOpacity, View } from 'react-native';\n\n// Styles\nimport styles from '../ValidateOtpStyles';\n\n// Types\nimport { ContactTypes } from '../ValidateOTPSchema';\n\n// Icons\nimport { RadioCheckedIcon, RadioUncheckedIcon } from '../../../../icons';\n\n// Utilities\nimport { isNotNullOrEmpty, truncateOrderId } from '../utils';\nimport { sHeight } from '../../../../components/utils/Scale';\nimport { maskContact } from '../../../../utils/ExecTaskUtils';\n\ninterface ContactCardPropType {\n handleSelectContact: (contactDetails: ContactTypes) => void;\n contactDetails: ContactTypes;\n}\nexport const ContactCard = (props: ContactCardPropType) => {\n const { handleSelectContact, contactDetails } = props;\n return (\n <TouchableOpacity\n activeOpacity={0.75}\n style={[\n styles.contactCard,\n contactDetails?.isSelected && styles.selectedCard,\n ]}\n onPress={() => handleSelectContact(contactDetails)}\n >\n <View style={[styles.rowContainer]}>\n {contactDetails?.isSelected ? (\n <RadioCheckedIcon style={[styles.radioIcon]} />\n ) : (\n <RadioUncheckedIcon style={[styles.radioIcon]} />\n )}\n <View style={styles.columnContainer}>\n {/* Contact */}\n <View style={[styles.rowContainer, { marginBottom: 8 }]}>\n <Text style={[styles.contactTitle, { padding: 0, margin: 0 }]}>\n {contactDetails?.value && maskContact(contactDetails?.value)}\n </Text>\n </View>\n {isNotNullOrEmpty(contactDetails?.orderId) && (\n <View style={styles.rowContainer}>\n <Text style={[styles.titleText, styles.contactLabel]}>\n Order ID\n </Text>\n <Text style={[styles.titleText, styles.contactText]}>\n {contactDetails?.orderId &&\n truncateOrderId(contactDetails?.orderId)}\n </Text>\n </View>\n )}\n {isNotNullOrEmpty(contactDetails?.orderFrom) && (\n <View style={[styles.rowContainer, { marginTop: sHeight(4) }]}>\n <Text style={[styles.titleText, styles.contactLabel]}>\n Order From\n </Text>\n <Text style={[styles.titleText, styles.contactText]}>\n {contactDetails?.orderFrom}\n </Text>\n </View>\n )}\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,16 @@
1
- import { StyleSheet, Pressable, Keyboard, Platform } from 'react-native';
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ // External imports
2
3
  import React, { useEffect } from 'react';
4
+ import { StyleSheet, Pressable, Keyboard, Platform } from 'react-native';
5
+
6
+ // Internal imports
3
7
  import SplitTextInput from '../../../widgets/SplitTextInput';
4
8
  import { Fonts } from '../../../../styles/executionTasks/CommonStyles';
5
9
  import { InputType } from '../ValidateOTPSchema';
6
10
  import { INVALID_REGEX } from '../constants';
7
11
  const OTPInput = props => {
8
- const maximumCodeLength = props.input.length;
9
- const keyboardType = props.input.inputType === InputType.NUMBER ? 'number-pad' : 'default';
12
+ const maximumCodeLength = props.input.length || 6;
13
+ const keyboardType = props.input.inputType === InputType.NUMBER || InputType.NUMERIC ? 'number-pad' : 'default';
10
14
  useEffect(() => {
11
15
  if (props.input.validationRegex && props.otpCode.length === maximumCodeLength) {
12
16
  const regex = new RegExp(props.input.validationRegex);
@@ -14,7 +18,7 @@ const OTPInput = props => {
14
18
  props.setHasError(hasError);
15
19
  if (hasError) props.setErrorMessage(INVALID_REGEX);else props.setErrorMessage('');
16
20
  }
17
- }, [props.otpCode]);
21
+ }, [maximumCodeLength, props, props.otpCode]);
18
22
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
19
23
  onPress: Keyboard.dismiss
20
24
  }, /*#__PURE__*/React.createElement(SplitTextInput, {
@@ -38,7 +42,9 @@ const styles = StyleSheet.create({
38
42
  text: {
39
43
  fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_400Regular : 'IBMPlexSans-Regular',
40
44
  color: '#3D445C',
41
- fontSize: 20,
45
+ fontSize: 16,
46
+ lineHeight: 24,
47
+ fontWeight: '400',
42
48
  textAlign: 'center'
43
49
  },
44
50
  errorMessage: {
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","Pressable","Keyboard","Platform","React","useEffect","SplitTextInput","Fonts","InputType","INVALID_REGEX","OTPInput","props","maximumCodeLength","input","length","keyboardType","inputType","NUMBER","validationRegex","otpCode","regex","RegExp","hasError","test","setHasError","setErrorMessage","createElement","Fragment","onPress","dismiss","styles","text","value","onChange","setOTPCode","maxLength","create","fontFamily","OS","IBMPlexSans_400Regular","color","fontSize","textAlign","errorMessage","marginTop","marginHorizontal","lineHeight"],"sources":["OTPInput.tsx"],"sourcesContent":["import { StyleSheet, Pressable, Keyboard, Platform } from 'react-native';\nimport React, { useEffect } from 'react';\nimport SplitTextInput from '../../../widgets/SplitTextInput';\nimport { Fonts } from '../../../../styles/executionTasks/CommonStyles';\nimport { InputType, CaptureInput } from '../ValidateOTPSchema';\nimport { INVALID_REGEX } from '../constants';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';\n\nexport interface OTPInputProps {\n input: CaptureInput;\n otpCode: string;\n setOTPCode: (otpCode: string) => void;\n hasError: boolean;\n setHasError: (hasError: boolean) => void;\n setErrorMessage: (errorMessage: string) => void;\n}\n\nconst OTPInput = (props: OTPInputProps) => {\n const maximumCodeLength = props.input.length;\n const keyboardType =\n props.input.inputType === InputType.NUMBER ? 'number-pad' : 'default';\n\n useEffect(() => {\n if (\n props.input.validationRegex &&\n props.otpCode.length === maximumCodeLength\n ) {\n const regex = new RegExp(props.input.validationRegex);\n const hasError = !regex.test(props.otpCode);\n\n props.setHasError(hasError);\n if (hasError) props.setErrorMessage(INVALID_REGEX);\n else props.setErrorMessage('');\n }\n }, [props.otpCode]);\n\n return (\n <>\n <Pressable onPress={Keyboard.dismiss}>\n <SplitTextInput\n styles={styles.text}\n value={props.otpCode}\n onChange={(text) => {\n if (props.input.validationRegex) {\n }\n if (props.hasError) {\n props.setErrorMessage('');\n props.setHasError(false);\n }\n props.setOTPCode(text);\n }}\n maxLength={maximumCodeLength}\n keyboardType={keyboardType}\n hasError={props.hasError}\n />\n </Pressable>\n </>\n );\n};\n\nexport default OTPInput;\n\nconst styles = StyleSheet.create({\n text: {\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n color: '#3D445C',\n fontSize: 20,\n textAlign: 'center',\n },\n errorMessage: {\n marginTop: 16,\n marginHorizontal: 10,\n color: '#DC2626',\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n fontSize: 12,\n lineHeight: 16,\n },\n});\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AACxE,OAAOC,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,cAAc,MAAM,iCAAiC;AAC5D,SAASC,KAAK,QAAQ,gDAAgD;AACtE,SAASC,SAAS,QAAsB,sBAAsB;AAC9D,SAASC,aAAa,QAAQ,cAAc;AAa5C,MAAMC,QAAQ,GAAIC,KAAoB,IAAK;EACzC,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,KAAK,CAACC,MAAM;EAC5C,MAAMC,YAAY,GAChBJ,KAAK,CAACE,KAAK,CAACG,SAAS,KAAKR,SAAS,CAACS,MAAM,GAAG,YAAY,GAAG,SAAS;EAEvEZ,SAAS,CAAC,MAAM;IACd,IACEM,KAAK,CAACE,KAAK,CAACK,eAAe,IAC3BP,KAAK,CAACQ,OAAO,CAACL,MAAM,KAAKF,iBAAiB,EAC1C;MACA,MAAMQ,KAAK,GAAG,IAAIC,MAAM,CAACV,KAAK,CAACE,KAAK,CAACK,eAAe,CAAC;MACrD,MAAMI,QAAQ,GAAG,CAACF,KAAK,CAACG,IAAI,CAACZ,KAAK,CAACQ,OAAO,CAAC;MAE3CR,KAAK,CAACa,WAAW,CAACF,QAAQ,CAAC;MAC3B,IAAIA,QAAQ,EAAEX,KAAK,CAACc,eAAe,CAAChB,aAAa,CAAC,CAAC,KAC9CE,KAAK,CAACc,eAAe,CAAC,EAAE,CAAC;IAChC;EACF,CAAC,EAAE,CAACd,KAAK,CAACQ,OAAO,CAAC,CAAC;EAEnB,oBACEf,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,qBACEvB,KAAA,CAAAsB,aAAA,CAACzB,SAAS;IAAC2B,OAAO,EAAE1B,QAAQ,CAAC2B;EAAQ,gBACnCzB,KAAA,CAAAsB,aAAA,CAACpB,cAAc;IACbwB,MAAM,EAAEA,MAAM,CAACC,IAAK;IACpBC,KAAK,EAAErB,KAAK,CAACQ,OAAQ;IACrBc,QAAQ,EAAGF,IAAI,IAAK;MAClB,IAAIpB,KAAK,CAACE,KAAK,CAACK,eAAe,EAAE,CACjC;MACA,IAAIP,KAAK,CAACW,QAAQ,EAAE;QAClBX,KAAK,CAACc,eAAe,CAAC,EAAE,CAAC;QACzBd,KAAK,CAACa,WAAW,CAAC,KAAK,CAAC;MAC1B;MACAb,KAAK,CAACuB,UAAU,CAACH,IAAI,CAAC;IACxB,CAAE;IACFI,SAAS,EAAEvB,iBAAkB;IAC7BG,YAAY,EAAEA,YAAa;IAC3BO,QAAQ,EAAEX,KAAK,CAACW;EAAS,CAC1B,CACQ,CACX,CAAC;AAEP,CAAC;AAED,eAAeZ,QAAQ;AAEvB,MAAMoB,MAAM,GAAG9B,UAAU,CAACoC,MAAM,CAAC;EAC/BL,IAAI,EAAE;IACJM,UAAU,EACRlC,QAAQ,CAACmC,EAAE,KAAK,SAAS,GACrB/B,KAAK,CAACgC,sBAAsB,GAC5B,qBAAqB;IAC3BC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;EACb,CAAC;EACDC,YAAY,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,gBAAgB,EAAE,EAAE;IACpBL,KAAK,EAAE,SAAS;IAChBH,UAAU,EACRlC,QAAQ,CAACmC,EAAE,KAAK,SAAS,GACrB/B,KAAK,CAACgC,sBAAsB,GAC5B,qBAAqB;IAC3BE,QAAQ,EAAE,EAAE;IACZK,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","StyleSheet","Pressable","Keyboard","Platform","SplitTextInput","Fonts","InputType","INVALID_REGEX","OTPInput","props","maximumCodeLength","input","length","keyboardType","inputType","NUMBER","NUMERIC","validationRegex","otpCode","regex","RegExp","hasError","test","setHasError","setErrorMessage","createElement","Fragment","onPress","dismiss","styles","text","value","onChange","setOTPCode","maxLength","create","fontFamily","OS","IBMPlexSans_400Regular","color","fontSize","lineHeight","fontWeight","textAlign","errorMessage","marginTop","marginHorizontal"],"sources":["OTPInput.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n// External imports\nimport React, { useEffect } from 'react';\nimport { StyleSheet, Pressable, Keyboard, Platform } from 'react-native';\n\n// Internal imports\nimport SplitTextInput from '../../../widgets/SplitTextInput';\nimport { Fonts } from '../../../../styles/executionTasks/CommonStyles';\nimport { InputType, CaptureInput } from '../ValidateOTPSchema';\nimport { INVALID_REGEX } from '../constants';\n\nexport interface OTPInputProps {\n input: CaptureInput;\n otpCode: string;\n setOTPCode: (otpCode: string) => void;\n hasError: boolean;\n setHasError: (hasError: boolean) => void;\n setErrorMessage: (errorMessage: string) => void;\n}\n\nconst OTPInput = (props: OTPInputProps) => {\n const maximumCodeLength = props.input.length || 6;\n const keyboardType =\n props.input.inputType === InputType.NUMBER || InputType.NUMERIC\n ? 'number-pad'\n : 'default';\n\n useEffect(() => {\n if (\n props.input.validationRegex &&\n props.otpCode.length === maximumCodeLength\n ) {\n const regex = new RegExp(props.input.validationRegex);\n const hasError = !regex.test(props.otpCode);\n\n props.setHasError(hasError);\n if (hasError) props.setErrorMessage(INVALID_REGEX);\n else props.setErrorMessage('');\n }\n }, [maximumCodeLength, props, props.otpCode]);\n\n return (\n <>\n <Pressable onPress={Keyboard.dismiss}>\n <SplitTextInput\n styles={styles.text}\n value={props.otpCode}\n onChange={(text) => {\n if (props.input.validationRegex) {\n }\n if (props.hasError) {\n props.setErrorMessage('');\n props.setHasError(false);\n }\n props.setOTPCode(text);\n }}\n maxLength={maximumCodeLength}\n keyboardType={keyboardType}\n hasError={props.hasError}\n />\n </Pressable>\n </>\n );\n};\n\nexport default OTPInput;\n\nconst styles = StyleSheet.create({\n text: {\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n color: '#3D445C',\n fontSize: 16,\n lineHeight: 24,\n fontWeight: '400',\n textAlign: 'center',\n },\n errorMessage: {\n marginTop: 16,\n marginHorizontal: 10,\n color: '#DC2626',\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n fontSize: 12,\n lineHeight: 16,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ /* eslint-disable react-native/no-inline-styles */
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ import React from 'react';
4
+ import { Text, TouchableOpacity, View } from 'react-native';
5
+
6
+ // Styles
7
+ import styles from '../ValidateOtpStyles';
8
+
9
+ // Types
10
+
11
+ // Icons
12
+ import { InfoExclamatoryDarkIcon } from '../../../../icons';
13
+ export const ResendOTPButton = props => {
14
+ var _props$resendOTP;
15
+ const {
16
+ timer,
17
+ resendConfig,
18
+ formattedTime,
19
+ handleResendOtp,
20
+ resendCount
21
+ } = props;
22
+ const enableRetry = props === null || props === void 0 || (_props$resendOTP = props.resendOTP) === null || _props$resendOTP === void 0 ? void 0 : _props$resendOTP.enableResends;
23
+ return /*#__PURE__*/React.createElement(View, null, resendCount >= resendConfig.maxResends ? /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
24
+ disabled: true,
25
+ onPress: handleResendOtp
26
+ }, /*#__PURE__*/React.createElement(Text, {
27
+ style: [styles.resendOtpMsg, styles.resendOtpBtn, {
28
+ color: '#E0E3EB'
29
+ }]
30
+ }, resendConfig.buttonTitle)), /*#__PURE__*/React.createElement(View, {
31
+ style: styles.maxLimitReachBox
32
+ }, /*#__PURE__*/React.createElement(InfoExclamatoryDarkIcon, {
33
+ height: 22,
34
+ width: 22,
35
+ style: {
36
+ padding: 4
37
+ },
38
+ fill: '#525B7A'
39
+ }), /*#__PURE__*/React.createElement(Text, {
40
+ style: styles.maxLimitReachText
41
+ }, "Maximum resend limit reached."))) : Number(timer) !== 0 ? /*#__PURE__*/React.createElement(Text, {
42
+ style: styles.resendOtpMsg
43
+ }, `${resendConfig.buttonTitle} ${timer ? `in ${formattedTime}` : ''}`) : /*#__PURE__*/React.createElement(TouchableOpacity, {
44
+ disabled: Boolean(timer) || resendCount >= resendConfig.maxResends || !enableRetry,
45
+ onPress: handleResendOtp
46
+ }, /*#__PURE__*/React.createElement(Text, {
47
+ style: [styles.resendOtpMsg, styles.resendOtpBtn, !enableRetry && {
48
+ color: '#E0E3EB'
49
+ }]
50
+ }, resendConfig.buttonTitle)));
51
+ };
52
+ //# sourceMappingURL=ResendOTPButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","TouchableOpacity","View","styles","InfoExclamatoryDarkIcon","ResendOTPButton","props","_props$resendOTP","timer","resendConfig","formattedTime","handleResendOtp","resendCount","enableRetry","resendOTP","enableResends","createElement","maxResends","disabled","onPress","style","resendOtpMsg","resendOtpBtn","color","buttonTitle","maxLimitReachBox","height","width","padding","fill","maxLimitReachText","Number","Boolean"],"sources":["ResendOTPButton.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { Text, TouchableOpacity, View } from 'react-native';\n\n// Styles\nimport styles from '../ValidateOtpStyles';\n\n// Types\nimport { ResendOTPConfigType } from '../ValidateOTPSchema';\n\n// Icons\nimport { InfoExclamatoryDarkIcon } from '../../../../icons';\n\ninterface ResendOTPButtonPropType {\n timer: number;\n resendConfig: ResendOTPConfigType;\n resendCount: number;\n formattedTime: string;\n handleResendOtp: () => void;\n resendOTP?: any;\n}\n\nexport const ResendOTPButton = (props: ResendOTPButtonPropType) => {\n const { timer, resendConfig, formattedTime, handleResendOtp, resendCount } =\n props;\n const enableRetry = props?.resendOTP?.enableResends;\n return (\n <View>\n {resendCount >= resendConfig.maxResends ? (\n <View>\n <TouchableOpacity disabled onPress={handleResendOtp}>\n <Text\n style={[\n styles.resendOtpMsg,\n styles.resendOtpBtn,\n {\n color: '#E0E3EB',\n },\n ]}\n >\n {resendConfig.buttonTitle}\n </Text>\n </TouchableOpacity>\n\n <View style={styles.maxLimitReachBox}>\n <InfoExclamatoryDarkIcon\n height={22}\n width={22}\n style={{ padding: 4 }}\n fill={'#525B7A'}\n />\n <Text style={styles.maxLimitReachText}>\n Maximum resend limit reached.\n </Text>\n </View>\n </View>\n ) : Number(timer) !== 0 ? (\n <Text style={styles.resendOtpMsg}>\n {`${resendConfig.buttonTitle} ${timer ? `in ${formattedTime}` : ''}`}\n </Text>\n ) : (\n <TouchableOpacity\n disabled={\n Boolean(timer) ||\n resendCount >= resendConfig.maxResends ||\n !enableRetry\n }\n onPress={handleResendOtp}\n >\n <Text\n style={[\n styles.resendOtpMsg,\n styles.resendOtpBtn,\n !enableRetry && {\n color: '#E0E3EB',\n },\n ]}\n >\n {resendConfig.buttonTitle}\n </Text>\n </TouchableOpacity>\n )}\n </View>\n );\n};\n"],"mappings":"AAAA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;;AAE3D;AACA,OAAOC,MAAM,MAAM,sBAAsB;;AAEzC;;AAGA;AACA,SAASC,uBAAuB,QAAQ,mBAAmB;AAW3D,OAAO,MAAMC,eAAe,GAAIC,KAA8B,IAAK;EAAA,IAAAC,gBAAA;EACjE,MAAM;IAAEC,KAAK;IAAEC,YAAY;IAAEC,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACxEN,KAAK;EACP,MAAMO,WAAW,GAAGP,KAAK,aAALA,KAAK,gBAAAC,gBAAA,GAALD,KAAK,CAAEQ,SAAS,cAAAP,gBAAA,uBAAhBA,gBAAA,CAAkBQ,aAAa;EACnD,oBACEhB,KAAA,CAAAiB,aAAA,CAACd,IAAI,QACFU,WAAW,IAAIH,YAAY,CAACQ,UAAU,gBACrClB,KAAA,CAAAiB,aAAA,CAACd,IAAI,qBACHH,KAAA,CAAAiB,aAAA,CAACf,gBAAgB;IAACiB,QAAQ;IAACC,OAAO,EAAER;EAAgB,gBAClDZ,KAAA,CAAAiB,aAAA,CAAChB,IAAI;IACHoB,KAAK,EAAE,CACLjB,MAAM,CAACkB,YAAY,EACnBlB,MAAM,CAACmB,YAAY,EACnB;MACEC,KAAK,EAAE;IACT,CAAC;EACD,GAEDd,YAAY,CAACe,WACV,CACU,CAAC,eAEnBzB,KAAA,CAAAiB,aAAA,CAACd,IAAI;IAACkB,KAAK,EAAEjB,MAAM,CAACsB;EAAiB,gBACnC1B,KAAA,CAAAiB,aAAA,CAACZ,uBAAuB;IACtBsB,MAAM,EAAE,EAAG;IACXC,KAAK,EAAE,EAAG;IACVP,KAAK,EAAE;MAAEQ,OAAO,EAAE;IAAE,CAAE;IACtBC,IAAI,EAAE;EAAU,CACjB,CAAC,eACF9B,KAAA,CAAAiB,aAAA,CAAChB,IAAI;IAACoB,KAAK,EAAEjB,MAAM,CAAC2B;EAAkB,GAAC,+BAEjC,CACF,CACF,CAAC,GACLC,MAAM,CAACvB,KAAK,CAAC,KAAK,CAAC,gBACrBT,KAAA,CAAAiB,aAAA,CAAChB,IAAI;IAACoB,KAAK,EAAEjB,MAAM,CAACkB;EAAa,GAC9B,GAAGZ,YAAY,CAACe,WAAW,IAAIhB,KAAK,GAAG,MAAME,aAAa,EAAE,GAAG,EAAE,EAC9D,CAAC,gBAEPX,KAAA,CAAAiB,aAAA,CAACf,gBAAgB;IACfiB,QAAQ,EACNc,OAAO,CAACxB,KAAK,CAAC,IACdI,WAAW,IAAIH,YAAY,CAACQ,UAAU,IACtC,CAACJ,WACF;IACDM,OAAO,EAAER;EAAgB,gBAEzBZ,KAAA,CAAAiB,aAAA,CAAChB,IAAI;IACHoB,KAAK,EAAE,CACLjB,MAAM,CAACkB,YAAY,EACnBlB,MAAM,CAACmB,YAAY,EACnB,CAACT,WAAW,IAAI;MACdU,KAAK,EAAE;IACT,CAAC;EACD,GAEDd,YAAY,CAACe,WACV,CACU,CAEhB,CAAC;AAEX,CAAC","ignoreList":[]}