@os1-platform/dispatch-mobile 2.1.5 → 2.1.6

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 (258) hide show
  1. package/lib/commonjs/analytics/firebase/FirebaseLogging.js +15 -0
  2. package/lib/commonjs/analytics/firebase/FirebaseLogging.js.map +1 -0
  3. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js +44 -0
  4. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
  5. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +79 -0
  6. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
  7. package/lib/commonjs/analytics/sentry/SentryModels.js +6 -0
  8. package/lib/commonjs/analytics/sentry/SentryModels.js.map +1 -0
  9. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +75 -0
  10. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -0
  11. package/lib/commonjs/components/executiontasks/cancellation/CancelET.js +51 -0
  12. package/lib/commonjs/components/executiontasks/cancellation/CancelET.js.map +1 -1
  13. package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js +23 -0
  14. package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js.map +1 -1
  15. package/lib/commonjs/components/executiontasks/deliver/DeliverET.js +16 -0
  16. package/lib/commonjs/components/executiontasks/deliver/DeliverET.js.map +1 -1
  17. package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js +52 -2
  18. package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
  19. package/lib/commonjs/components/executiontasks/display/DisplayModalET.js +16 -0
  20. package/lib/commonjs/components/executiontasks/display/DisplayModalET.js.map +1 -1
  21. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js +33 -3
  22. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js.map +1 -1
  23. package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js +16 -0
  24. package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js.map +1 -1
  25. package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js +23 -0
  26. package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
  27. package/lib/commonjs/components/executiontasks/forms/FormGenerator.js +41 -18
  28. package/lib/commonjs/components/executiontasks/forms/FormGenerator.js.map +1 -1
  29. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
  30. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  31. package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
  32. package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
  33. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +18 -6
  34. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  35. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +62 -5
  36. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  37. package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
  38. package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
  39. package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js +37 -0
  40. package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
  41. package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
  42. package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
  43. package/lib/commonjs/components/executiontasks/pickup/PickupET.js +16 -0
  44. package/lib/commonjs/components/executiontasks/pickup/PickupET.js.map +1 -1
  45. package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js +44 -0
  46. package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js.map +1 -1
  47. package/lib/commonjs/components/executiontasks/scan/ScanET.js +40 -1
  48. package/lib/commonjs/components/executiontasks/scan/ScanET.js.map +1 -1
  49. package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
  50. package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
  51. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
  52. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  53. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  54. package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
  55. package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
  56. package/lib/commonjs/components/widgets/CancelOrderDialog.js +16 -0
  57. package/lib/commonjs/components/widgets/CancelOrderDialog.js.map +1 -1
  58. package/lib/commonjs/components/widgets/Card.js +17 -1
  59. package/lib/commonjs/components/widgets/Card.js.map +1 -1
  60. package/lib/commonjs/components/widgets/ModalWidget.js +22 -2
  61. package/lib/commonjs/components/widgets/ModalWidget.js.map +1 -1
  62. package/lib/commonjs/components/widgets/SearchBar.js +9 -0
  63. package/lib/commonjs/components/widgets/SearchBar.js.map +1 -1
  64. package/lib/commonjs/components/widgets/SnackBarCustom.js +9 -0
  65. package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
  66. package/lib/commonjs/components/widgets/SplitTextInput.js +9 -0
  67. package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
  68. package/lib/commonjs/components/widgets/TabsComponent.js +12 -1
  69. package/lib/commonjs/components/widgets/TabsComponent.js.map +1 -1
  70. package/lib/commonjs/index.js +46 -0
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/manager/sdk/DispatchSdkCache.js +3 -2
  73. package/lib/commonjs/manager/sdk/DispatchSdkCache.js.map +1 -1
  74. package/lib/commonjs/models/execTasks/ETBaseModels.js.map +1 -1
  75. package/lib/commonjs/styles/executionTasks/CommonStyles.js +4 -4
  76. package/lib/commonjs/styles/executionTasks/CommonStyles.js.map +1 -1
  77. package/lib/commonjs/ui/screens/DeliverScreen.js +18 -1
  78. package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/DoodleScreen.js +9 -0
  80. package/lib/commonjs/ui/screens/DoodleScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/DropCashScreen.js +10 -1
  82. package/lib/commonjs/ui/screens/DropCashScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/FormsScreen.js +7 -0
  84. package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/GeofenceScreen.js +12 -0
  86. package/lib/commonjs/ui/screens/GeofenceScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/ImageCaptureScreen.js +9 -0
  88. package/lib/commonjs/ui/screens/ImageCaptureScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/PaymentScreen.js +9 -0
  90. package/lib/commonjs/ui/screens/PaymentScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/PickupScreen.js +9 -0
  92. package/lib/commonjs/ui/screens/PickupScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/ValidateOTPScreen.js +12 -0
  94. package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
  95. package/lib/commonjs/utils/ExecTaskUtils.js +30 -13
  96. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  97. package/lib/commonjs/utils/Logger.js +54 -41
  98. package/lib/commonjs/utils/Logger.js.map +1 -1
  99. package/lib/module/analytics/firebase/FirebaseLogging.js +8 -0
  100. package/lib/module/analytics/firebase/FirebaseLogging.js.map +1 -0
  101. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js +37 -0
  102. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
  103. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +70 -0
  104. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
  105. package/lib/module/analytics/sentry/SentryModels.js +2 -0
  106. package/lib/module/analytics/sentry/SentryModels.js.map +1 -0
  107. package/lib/module/analytics/sentry/SentrySdkConstants.js +69 -0
  108. package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -0
  109. package/lib/module/components/executiontasks/cancellation/CancelET.js +51 -0
  110. package/lib/module/components/executiontasks/cancellation/CancelET.js.map +1 -1
  111. package/lib/module/components/executiontasks/captureInput/CaptureText.js +23 -0
  112. package/lib/module/components/executiontasks/captureInput/CaptureText.js.map +1 -1
  113. package/lib/module/components/executiontasks/deliver/DeliverET.js +16 -0
  114. package/lib/module/components/executiontasks/deliver/DeliverET.js.map +1 -1
  115. package/lib/module/components/executiontasks/deliver/SLDeliverET.js +52 -2
  116. package/lib/module/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
  117. package/lib/module/components/executiontasks/display/DisplayModalET.js +16 -0
  118. package/lib/module/components/executiontasks/display/DisplayModalET.js.map +1 -1
  119. package/lib/module/components/executiontasks/doodle/SignatureET.js +33 -3
  120. package/lib/module/components/executiontasks/doodle/SignatureET.js.map +1 -1
  121. package/lib/module/components/executiontasks/dropCash/DropCashET.js +16 -0
  122. package/lib/module/components/executiontasks/dropCash/DropCashET.js.map +1 -1
  123. package/lib/module/components/executiontasks/dropCash/SLDropCash.js +23 -0
  124. package/lib/module/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
  125. package/lib/module/components/executiontasks/forms/FormGenerator.js +41 -18
  126. package/lib/module/components/executiontasks/forms/FormGenerator.js.map +1 -1
  127. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
  128. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  129. package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
  130. package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
  131. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +18 -6
  132. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  133. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +63 -6
  134. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  135. package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
  136. package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
  137. package/lib/module/components/executiontasks/payments/init/InitPaymentET.js +37 -0
  138. package/lib/module/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
  139. package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
  140. package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
  141. package/lib/module/components/executiontasks/pickup/PickupET.js +16 -0
  142. package/lib/module/components/executiontasks/pickup/PickupET.js.map +1 -1
  143. package/lib/module/components/executiontasks/pickup/SLPickupET.js +44 -0
  144. package/lib/module/components/executiontasks/pickup/SLPickupET.js.map +1 -1
  145. package/lib/module/components/executiontasks/scan/ScanET.js +40 -1
  146. package/lib/module/components/executiontasks/scan/ScanET.js.map +1 -1
  147. package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
  148. package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
  149. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
  150. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  151. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  152. package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
  153. package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
  154. package/lib/module/components/widgets/CancelOrderDialog.js +16 -0
  155. package/lib/module/components/widgets/CancelOrderDialog.js.map +1 -1
  156. package/lib/module/components/widgets/Card.js +17 -1
  157. package/lib/module/components/widgets/Card.js.map +1 -1
  158. package/lib/module/components/widgets/ModalWidget.js +22 -2
  159. package/lib/module/components/widgets/ModalWidget.js.map +1 -1
  160. package/lib/module/components/widgets/SearchBar.js +9 -0
  161. package/lib/module/components/widgets/SearchBar.js.map +1 -1
  162. package/lib/module/components/widgets/SnackBarCustom.js +9 -0
  163. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  164. package/lib/module/components/widgets/SplitTextInput.js +9 -0
  165. package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
  166. package/lib/module/components/widgets/TabsComponent.js +12 -1
  167. package/lib/module/components/widgets/TabsComponent.js.map +1 -1
  168. package/lib/module/index.js +9 -0
  169. package/lib/module/index.js.map +1 -1
  170. package/lib/module/manager/sdk/DispatchSdkCache.js +3 -2
  171. package/lib/module/manager/sdk/DispatchSdkCache.js.map +1 -1
  172. package/lib/module/models/execTasks/ETBaseModels.js.map +1 -1
  173. package/lib/module/styles/executionTasks/CommonStyles.js +5 -5
  174. package/lib/module/styles/executionTasks/CommonStyles.js.map +1 -1
  175. package/lib/module/ui/screens/DeliverScreen.js +18 -1
  176. package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
  177. package/lib/module/ui/screens/DoodleScreen.js +9 -0
  178. package/lib/module/ui/screens/DoodleScreen.js.map +1 -1
  179. package/lib/module/ui/screens/DropCashScreen.js +10 -0
  180. package/lib/module/ui/screens/DropCashScreen.js.map +1 -1
  181. package/lib/module/ui/screens/FormsScreen.js +7 -0
  182. package/lib/module/ui/screens/FormsScreen.js.map +1 -1
  183. package/lib/module/ui/screens/GeofenceScreen.js +12 -0
  184. package/lib/module/ui/screens/GeofenceScreen.js.map +1 -1
  185. package/lib/module/ui/screens/ImageCaptureScreen.js +9 -0
  186. package/lib/module/ui/screens/ImageCaptureScreen.js.map +1 -1
  187. package/lib/module/ui/screens/PaymentScreen.js +9 -0
  188. package/lib/module/ui/screens/PaymentScreen.js.map +1 -1
  189. package/lib/module/ui/screens/PickupScreen.js +9 -0
  190. package/lib/module/ui/screens/PickupScreen.js.map +1 -1
  191. package/lib/module/ui/screens/ValidateOTPScreen.js +12 -0
  192. package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
  193. package/lib/module/utils/ExecTaskUtils.js +30 -13
  194. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  195. package/lib/module/utils/Logger.js +54 -39
  196. package/lib/module/utils/Logger.js.map +1 -1
  197. package/lib/typescript/analytics/firebase/FirebaseLogging.d.ts +2 -0
  198. package/lib/typescript/analytics/sentry/SentryAnalyticsSingleton.d.ts +11 -0
  199. package/lib/typescript/analytics/sentry/SentryAnalyticsUtils.d.ts +2 -0
  200. package/lib/typescript/analytics/sentry/SentryModels.d.ts +15 -0
  201. package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +63 -0
  202. package/lib/typescript/index.d.ts +5 -0
  203. package/lib/typescript/manager/dispatch/DispatchStateContainer.d.ts +2 -0
  204. package/lib/typescript/manager/sdk/DispatchSdkCache.d.ts +2 -0
  205. package/lib/typescript/models/execTasks/ETBaseModels.d.ts +25 -6
  206. package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +4 -4
  207. package/lib/typescript/utils/Logger.d.ts +0 -3
  208. package/package.json +5 -3
  209. package/src/analytics/firebase/FirebaseLogging.ts +13 -0
  210. package/src/analytics/sentry/SentryAnalyticsSingleton.ts +35 -0
  211. package/src/analytics/sentry/SentryAnalyticsUtils.ts +71 -0
  212. package/src/analytics/sentry/SentryModels.ts +18 -0
  213. package/src/analytics/sentry/SentrySdkConstants.ts +74 -0
  214. package/src/components/executiontasks/cancellation/CancelET.tsx +25 -2
  215. package/src/components/executiontasks/captureInput/CaptureText.tsx +15 -2
  216. package/src/components/executiontasks/deliver/DeliverET.tsx +8 -0
  217. package/src/components/executiontasks/deliver/SLDeliverET.tsx +22 -5
  218. package/src/components/executiontasks/display/DisplayModalET.tsx +8 -0
  219. package/src/components/executiontasks/doodle/SignatureET.tsx +23 -3
  220. package/src/components/executiontasks/dropCash/DropCashET.tsx +9 -0
  221. package/src/components/executiontasks/dropCash/SLDropCash.tsx +11 -0
  222. package/src/components/executiontasks/forms/FormGenerator.tsx +46 -29
  223. package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +10 -3
  224. package/src/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.tsx +8 -1
  225. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +17 -5
  226. package/src/components/executiontasks/imageCapture/ImageCapture.tsx +32 -5
  227. package/src/components/executiontasks/payments/completePayment/CompletePaymentET.tsx +11 -0
  228. package/src/components/executiontasks/payments/init/InitPaymentET.tsx +17 -0
  229. package/src/components/executiontasks/payments/processPayment/ProcessPaymentET.tsx +11 -0
  230. package/src/components/executiontasks/pickup/PickupET.tsx +8 -0
  231. package/src/components/executiontasks/pickup/SLPickupET.tsx +19 -0
  232. package/src/components/executiontasks/scan/ScanET.tsx +19 -1
  233. package/src/components/executiontasks/scan/sub_components/SummaryPage.tsx +11 -0
  234. package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +14 -0
  235. package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +2 -0
  236. package/src/components/executiontasks/verifyOtp/VerifyOtpET.tsx +5 -0
  237. package/src/components/widgets/CancelOrderDialog.tsx +7 -0
  238. package/src/components/widgets/Card.tsx +9 -1
  239. package/src/components/widgets/ModalWidget.tsx +16 -2
  240. package/src/components/widgets/SearchBar.tsx +6 -1
  241. package/src/components/widgets/SnackBarCustom.tsx +4 -0
  242. package/src/components/widgets/SplitTextInput.tsx +6 -0
  243. package/src/components/widgets/TabsComponent.tsx +8 -1
  244. package/src/index.tsx +8 -3
  245. package/src/manager/sdk/DispatchSdkCache.ts +2 -1
  246. package/src/models/execTasks/ETBaseModels.ts +20 -7
  247. package/src/styles/executionTasks/CommonStyles.ts +5 -5
  248. package/src/ui/screens/DeliverScreen.tsx +9 -0
  249. package/src/ui/screens/DoodleScreen.tsx +5 -0
  250. package/src/ui/screens/DropCashScreen.tsx +6 -0
  251. package/src/ui/screens/FormsScreen.tsx +3 -0
  252. package/src/ui/screens/GeofenceScreen.tsx +11 -1
  253. package/src/ui/screens/ImageCaptureScreen.tsx +5 -0
  254. package/src/ui/screens/PaymentScreen.tsx +5 -0
  255. package/src/ui/screens/PickupScreen.tsx +7 -1
  256. package/src/ui/screens/ValidateOTPScreen.tsx +10 -0
  257. package/src/utils/ExecTaskUtils.ts +36 -10
  258. package/src/utils/Logger.ts +50 -51
@@ -1 +1 @@
1
- {"version":3,"names":["Alert","FileSystem","ImagePicker","PermissionStatus","showToast","ImageManipulator","Logger","LOG_TYPE","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","BaseError","BaseErrorCodes","DispatchSdkCache","insertDocumentInDB","launchCamera","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","getInstance","logEvent","message","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","GRANTED","captureImage","imageWidth","imageHeight","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","didCancel","errorCode","errorMessage","assets","compressionRatio","saveOptions","compress","resizedImage","manipulateAsync","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","IMAGE_CAPTURE","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","title","push","url","timestamp","file","folder","name","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport type { ActionResize, ImageResult } from 'expo-image-manipulator';\nimport * as ImageManipulator from 'expo-image-manipulator';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if(uri != null){ \n //\n let compressionRatio = await getCompressionRatio(uri, fileSize);\n console.log(\"aks:compressionRatio=\", compressionRatio)\n \n //\n const saveOptions = {\n compress: compressionRatio,\n }\n //\n console.log(\"aks:uri=blank\")\n console.log(\"aks:uri=\", uri)\n let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n //\n console.log(\"aks:resizedImage=\", resizedImage)\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n console.log(\"resizedImage=before\")\n console.log(\"resizedImage=\", resizedImage)\n\n return resizedImage;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
1
+ {"version":3,"names":["Alert","FileSystem","ImagePicker","PermissionStatus","showToast","Logger","LOG_TYPE","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","BaseError","BaseErrorCodes","DispatchSdkCache","insertDocumentInDB","launchCamera","Image","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","getInstance","logEvent","message","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","GRANTED","captureImage","imageWidth","imageHeight","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","didCancel","errorCode","errorMessage","assets","compressionRatio","saveOptions","compress","resizedImage1","compressionMethod","quality","resizedImageResult","width","height","base64","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","IMAGE_CAPTURE","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","title","push","url","timestamp","file","folder","name","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport type { ActionResize, ImageResult } from 'expo-image-manipulator';\nimport * as ImageManipulator from 'expo-image-manipulator';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\nimport { Image } from 'react-native-compressor';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if(uri != null){ \n //\n let compressionRatio = await getCompressionRatio(uri, fileSize);\n console.log(\"aks:compressionRatio=\", compressionRatio)\n \n //\n const saveOptions = {\n compress: compressionRatio,\n }\n //\n console.log(\"aks:uri=blank\")\n console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n\n const resizedImage1 = await Image.compress(uri, {\n compressionMethod: 'manual',\n quality: compressionRatio,\n });\n //\n let resizedImageResult: ImageResult = {\n uri: resizedImage1,\n width: imageWidth,\n height: imageHeight,\n base64: '',\n };\n console.log('aks:resizedImage1=', resizedImageResult);\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n // console.log(\"resizedImage=before\")\n // console.log(\"resizedImage=\", resizedImage)\n\n return resizedImageResult;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useEffect, useState, useLayoutEffect } from 'react';
2
- import { BackHandler, FlatList, Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
2
+ import { BackHandler, FlatList, Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
3
3
  import * as CaptureUtils from './CaptureUtils';
4
4
  import { getCaptureOutput } from './CaptureUtils';
5
5
  import { showToast } from '../../widgets/Toaster';
@@ -16,6 +16,8 @@ import GoBackModal from '../../../components/widgets/GoBackModal';
16
16
  import { useFocusEffect } from '@react-navigation/native';
17
17
  import Circle from "./circle-xmark.svg";
18
18
  import CameraIcon from "./camera.svg";
19
+ import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
20
+ import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
19
21
  const ImageCapture = props => {
20
22
  let numberOfImagesToCapture;
21
23
  if (props.captureMode == "SINGLE") {
@@ -52,6 +54,13 @@ const ImageCapture = props => {
52
54
  onPress: () => {
53
55
  var _props$taskMeta2;
54
56
  if ((_props$taskMeta2 = props.taskMeta) !== null && _props$taskMeta2 !== void 0 && _props$taskMeta2.enableGoBack && hasGoBackConnector(props.applicableReasons)) setShowBackModal(true);else props.navigation.goBack();
57
+ const cta = "Back Arrow";
58
+ fireEventWithScreenName({
59
+ severityLevel: SeverityLevelValue.LOG,
60
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
61
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
62
+ cta: cta
63
+ });
55
64
  },
56
65
  name: "arrow-back",
57
66
  color: 'black',
@@ -104,16 +113,34 @@ const ImageCapture = props => {
104
113
  borderRadius: 3
105
114
  }
106
115
  }, (imagesDummy === null || imagesDummy === void 0 ? void 0 : imagesDummy.length) > index && (_imagesDummy$index = imagesDummy[index]) !== null && _imagesDummy$index !== void 0 && _imagesDummy$index.path ? null : /*#__PURE__*/React.createElement(TouchableOpacity, {
107
- onPress: onPress
116
+ onPress: () => {
117
+ onPress();
118
+ const cta = "Camera Icon";
119
+ fireEventWithScreenName({
120
+ severityLevel: SeverityLevelValue.LOG,
121
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
122
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
123
+ cta: cta
124
+ });
125
+ }
108
126
  }, /*#__PURE__*/React.createElement(View, {
109
127
  style: {
110
128
  marginTop: numColumns === 2 ? '32%' : numberOfImagesToCapture === 1 ? '50%' : '20%'
111
129
  }
112
130
  }, /*#__PURE__*/React.createElement(CameraIcon, null))), /*#__PURE__*/React.createElement(Button, {
113
- onPress: () => captureImage(index),
131
+ onPress: () => {
132
+ captureImage(index);
133
+ const cta = "Click Photo";
134
+ fireEventWithScreenName({
135
+ severityLevel: SeverityLevelValue.LOG,
136
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
137
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
138
+ cta: cta
139
+ });
140
+ },
114
141
  uppercase: false,
115
142
  labelStyle: [{
116
- fontFamily: Fonts.IBMPlexSans_500Medium,
143
+ fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_500Medium : 'IBMPlexSans-Medium',
117
144
  fontStyle: 'normal',
118
145
  fontWeight: 'normal',
119
146
  fontSize: 14,
@@ -131,7 +158,16 @@ const ImageCapture = props => {
131
158
  bottom: numColumns == 2 ? '6%' : numberOfImagesToCapture == 1 ? '2%' : '11%'
132
159
  }
133
160
  }), /*#__PURE__*/React.createElement(TouchableOpacity, {
134
- onPress: onPress,
161
+ onPress: () => {
162
+ onPress();
163
+ const cta = "Circle Icon";
164
+ fireEventWithScreenName({
165
+ severityLevel: SeverityLevelValue.LOG,
166
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
167
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
168
+ cta: cta
169
+ });
170
+ },
135
171
  style: {
136
172
  position: 'absolute',
137
173
  top: numColumns == 2 ? '17%' : '9%',
@@ -253,6 +289,13 @@ const ImageCapture = props => {
253
289
  index: index,
254
290
  onPress: async () => {
255
291
  await deleteImage(index);
292
+ const cta = "Delete Icon";
293
+ fireEventWithScreenName({
294
+ severityLevel: SeverityLevelValue.LOG,
295
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
296
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
297
+ cta: cta
298
+ });
256
299
  }
257
300
  });
258
301
  };
@@ -297,11 +340,18 @@ const ImageCapture = props => {
297
340
  props.onSubmitET({
298
341
  ...(await getBaseETResponse(EntityCode.IMAGE_CAPTURE, false, getEventCodeByET(ExecutionTaskID.IMAGE_CAPTURE, false, (_props$applicableReas = props.applicableReasons) === null || _props$applicableReas === void 0 ? void 0 : _props$applicableReas.failure), '', props.mergedObjectiveId, ExecutionTaskID.IMAGE_CAPTURE))
299
342
  });
343
+ const cta = "Cancel";
344
+ fireEventWithScreenName({
345
+ severityLevel: SeverityLevelValue.LOG,
346
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
347
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
348
+ cta: cta
349
+ });
300
350
  }
301
351
  }, "Cancel"), /*#__PURE__*/React.createElement(Button, {
302
352
  labelStyle: {
303
353
  color: buttonProceed ? '#ffff' : '#A3AAC2',
304
- fontFamily: Fonts.IBMPlexSans_500Medium,
354
+ fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_500Medium : 'IBMPlexSans-Medium',
305
355
  fontSize: 14,
306
356
  lineHeight: 20,
307
357
  textAlign: 'center',
@@ -316,6 +366,13 @@ const ImageCapture = props => {
316
366
  mode: "contained",
317
367
  onPress: async () => {
318
368
  await handleSubmit();
369
+ const cta = "Proceed";
370
+ fireEventWithScreenName({
371
+ severityLevel: SeverityLevelValue.LOG,
372
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
373
+ screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN,
374
+ cta: cta
375
+ });
319
376
  }
320
377
  }, "Proceed"))));
321
378
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useState","useLayoutEffect","BackHandler","FlatList","Image","StyleSheet","Text","TouchableOpacity","View","CaptureUtils","getCaptureOutput","showToast","Iconn","CommonStyles","Fonts","getBaseETResponse","EntityCode","ExecutionTaskID","getEventCodeByET","GO_BACK_EVENT_CODE","Button","Provider","Logger","LOG_TYPE","hasGoBackConnector","GoBackModal","useFocusEffect","Circle","CameraIcon","ImageCapture","props","numberOfImagesToCapture","captureMode","captureCountLimit","images","setImages","imagesDummy","setImagesDummy","showCapture","setShowCapture","disableProceed","setDisableProceed","showBackModal","setShowBackModal","buttonProceed","setButtonProceed","numColumns","setNumColumns","onBackPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","navigation","goBack","addEventListener","removeEventListener","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta2","name","color","size","style","paddingRight","paddingTop","length","arr","i","push","path","ImageItem","_ref","_imagesDummy$index","_imagesDummy$index2","_imagesDummy$index3","_imagesDummy$index4","item","index","width","height","backgroundColor","alignItems","alignSelf","borderWidth","borderColor","borderStyle","borderRadius","marginTop","marginStart","captureImage","uppercase","labelStyle","fontFamily","IBMPlexSans_500Medium","fontStyle","fontWeight","fontSize","letterSpacing","source","uri","bottom","position","top","marginRight","justifyContent","marginLeft","renderModal","showModal","setShowModal","onSuccess","onSubmitET","IMAGE_CAPTURE","mergedObjectiveId","onFailure","handleSubmit","imagesArray","filter","console","log","JSON","stringify","error","message","imageDataResponse","resolution","breadth","fileSizeLimit","imgArray","id","getImagesFileName","url","timestamp","Date","now","deleteImage","imageDummyArray","initialProceedValue","_imageDummyArray$i","err","getInstance","logEvent","SDK_ERROR","renderItem","_ref2","mainContainer","styles","etMessageView","etMessage","data","keyExtractor","contentContainerStyle","paddingBottom","bottomButtons","isSelfLoop","cancelButton","flexGrow","mode","cancelButtonLabel","textTransform","_props$applicableReas","failure","lineHeight","textAlign","marginHorizontal","disabled","create","imageEtContainer","display","marginEnd","padding","flexDirection","paddingVertical","borderTopColor","borderTopWidth","IBMPlexSans_400Regular","paddingStart"],"sources":["ImageCapture.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useLayoutEffect } from 'react';\nimport { BackHandler, FlatList, Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\nimport * as CaptureUtils from './CaptureUtils';\nimport { getCaptureOutput } from './CaptureUtils';\nimport { showToast } from '../../widgets/Toaster';\nimport SdkColors, { ColorTheme } from '../../../styles/SdkColors';\nimport Icon from 'react-native-vector-icons/Feather';\nimport Iconn from 'react-native-vector-icons/MaterialIcons';\nimport { CommonStyles, Fonts } from '../../../styles/executionTasks/CommonStyles';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { EntityCode, ExecutionTaskID } from '../../../models/execTasks/ETConfig';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport { GO_BACK_EVENT_CODE } from '../../../constants/constants';\nimport { Button, Provider } from 'react-native-paper';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { hasGoBackConnector } from '../../../components/utils';\nimport GoBackModal from '../../../components/widgets/GoBackModal';\nimport { useFocusEffect } from '@react-navigation/native';\nimport Circle from \"./circle-xmark.svg\"\n\nimport CameraIcon from \"./camera.svg\"\n\nconst ImageCapture = (props: any) => {\n let numberOfImagesToCapture: any;\n if (props.captureMode == \"SINGLE\") {\n numberOfImagesToCapture = 1;\n } else if (props.captureMode === 'MULTI' && props.captureCountLimit && props.captureCountLimit > 0) {\n numberOfImagesToCapture = props.captureCountLimit;\n }\n\n const [images, setImages] = useState([]);\n const [imagesDummy, setImagesDummy] = useState<any[]>([]);\n const [showCapture, setShowCapture] = useState(true);\n const [disableProceed, setDisableProceed] = useState(false);\n const [showBackModal, setShowBackModal] = useState(false);\n const [buttonProceed, setButtonProceed] = useState(false);\n const [numColumns, setNumColumns] = useState(numberOfImagesToCapture <= 2 ? 1 : 2);\n\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n ) {\n setShowBackModal(true);\n return true;\n } else {\n props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [])\n );\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Iconn\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else props.navigation.goBack();\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 }, [props.navigation, props.title]);\n\n useEffect(() => {\n\n if (images.length === 0) {\n let arr: any = [];\n for (let i = 0; i < numberOfImagesToCapture; i++) {\n arr.push({ path: '' });\n }\n setImages(arr);\n }\n }, [images]);\n\n\n interface ImageItemProps {\n item: { path: string };\n index: number;\n onPress: () => void;\n }\n\n const ImageItem: React.FC<ImageItemProps> = ({ item, index, onPress }) => {\n\n return (\n <View\n style={{\n width: numColumns == 2 ? '43%' : '88%',\n height: numColumns == 2 ? 160 : numberOfImagesToCapture == 1 ? 336 : 180,\n backgroundColor: 'white',\n alignItems: 'center',\n alignSelf: 'center',\n borderWidth: 1,\n borderColor: '#A3AAC2',\n borderStyle: 'dashed',\n borderRadius: 3,\n marginTop: '6%',\n marginStart: numColumns == 2 ? 17 : numberOfImagesToCapture == 1 ? 0 : 0,\n }}\n >\n <View\n style={{\n alignItems: 'center',\n width: '80%',\n height: '98%',\n borderRadius: 3,\n }}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path ? null : (\n <TouchableOpacity\n onPress={onPress}>\n<View\nstyle={{\n marginTop:\n numColumns === 2 ? '32%' : numberOfImagesToCapture === 1 ? '50%' : '20%',\n}}\n>\n<CameraIcon />\n</View>\n</TouchableOpacity>\n \n )}\n <Button\n onPress={() => captureImage(index)}\n uppercase={false}\n labelStyle={[\n {\n fontFamily: Fonts.IBMPlexSans_500Medium,\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n color: '#5B80F7',\n },\n ]}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path ? null : 'Click Photo'}\n </Button>\n <Image\n source={{\n uri: imagesDummy?.length > index ? imagesDummy[index]?.path : item?.path,\n }}\n style={{\n height: numColumns == 2 ? '75%' : numberOfImagesToCapture == 1 ? '85%' : '85%',\n width: numColumns == 2 ? '105%' : '118%',\n borderRadius: 10,\n bottom:\n numColumns == 2 ? '6%' : numberOfImagesToCapture == 1 ? '2%' : '11%',\n }}\n />\n <TouchableOpacity\n onPress={onPress}\n style={{\n position: 'absolute',\n top: numColumns == 2 ? '17%' : '9%',\n marginRight: '2%',\n }}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path && (\n <View\n style={{\n width: 25,\n height: 25,\n backgroundColor: 'white',\n borderRadius: 15,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: numColumns == 2 ? '78%' : '96%',\n }}\n >\n <Circle />\n </View>\n )}\n </TouchableOpacity>\n </View>\n </View>\n );\n };\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n props.onSubmitET({\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n });\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n const handleSubmit = async () => {\n try {\n setDisableProceed(true);\n let imagesArray = imagesDummy.filter(item => item != null && item.path != null && item.path.length != 0);\n console.log('imagesArray:', JSON.stringify(imagesArray));\n\n if (imagesArray.length > 0) {\n props.onSubmitET(await getCaptureOutput(imagesArray, props));\n } else {\n showToast('No Images captured');\n }\n } catch (error: any) {\n setDisableProceed(false);\n showToast(error.message);\n } finally {\n setDisableProceed(false);\n }\n };\n\n // useEffect(() => {\n // if (props.captureMode === 'SINGLE') {\n // if (images.length > 0) {\n // setShowCapture(false);\n // } else setShowCapture(true);\n // } else if (\n // props.captureMode === 'MULTI' &&\n // props.captureCountLimit &&\n // props.captureCountLimit > 0\n // ) {\n // if (images.length === CaptureUtils.getMaxImagesCount(props)) {\n // setShowCapture(false);\n // } else setShowCapture(true);\n // } else {\n // if (images.length > 0) {\n // setShowCapture(true);\n // }\n // }\n // }, [images, props, showCapture]);\n\n const captureImage = useCallback(async (index) => {\n // // if (!showCapture) {\n // // showToast(`Max Image Limit reached`);\n // // return;\n // // }\n // console.log(\"captureImage\", CaptureUtils);\n let imageDataResponse = await CaptureUtils.captureImage(\n props.resolution.breadth,\n props.resolution.length,\n props.fileSizeLimit\n );\n\n if (imageDataResponse != null) {\n setButtonProceed(true);\n\n let imgArray = [];\n imgArray = imagesDummy;\n imgArray[index] = {\n id: CaptureUtils.getImagesFileName(),\n // @ts-ignore\n path: imageDataResponse.uri,\n url: '',\n timestamp: Date.now(),\n };\n setImagesDummy([...imgArray])\n console.log(\"images211:\", JSON.stringify(imgArray));\n\n }\n }, [props.resolution.breadth, props.resolution.length, props.fileSizeLimit]);\n\n\n const deleteImage = async (index: any) => {\n let imageDummyArray = [];\n imageDummyArray = imagesDummy\n imageDummyArray[index].path = \"\"\n setImagesDummy([...imageDummyArray])\n\n let initialProceedValue = false;\n for (let i = 0; i < imageDummyArray.length; i++) {\n if (imageDummyArray[i]?.path) {\n initialProceedValue = true\n }\n }\n setButtonProceed(initialProceedValue);\n\n try {\n // setImagesDummy(filteredImages);\n // setButtonProceed(false);\n } catch (err: any) {\n Logger.getInstance().logEvent('deleteImageError', err.message, LOG_TYPE.SDK_ERROR);\n console.error(\"Error updating state after deletion:\", err);\n }\n };\n\n const renderItem = ({ item, index }: { item: any; index: any }) => {\n return (\n <ImageItem\n item={item}\n index={index}\n onPress={async () => {\n await deleteImage(index);\n }}\n />\n );\n };\n\n return (\n <Provider>\n {renderModal()}\n <View style={CommonStyles.mainContainer}>\n {props.message && (\n <View style={styles.etMessageView}>\n <Text style={styles.etMessage}>\n Take a photo of the shipments. Please ensure the items are clearly visible.\n </Text>\n </View>\n )}\n <View\n style={{\n backgroundColor: 'white',\n width: 360,\n height: numColumns == 2 ? '82%' : numberOfImagesToCapture == 1 ? '63%' : '70%',\n alignSelf: 'center',\n marginTop: '5%',\n borderRadius: 7,\n borderColor: '#E0E3EB',\n borderWidth: 0.5,\n }}\n >\n <FlatList\n data={images}\n numColumns={numColumns}\n renderItem={renderItem}\n keyExtractor={(item) => item?.id}\n contentContainerStyle={{ paddingBottom: '30%' }}\n />\n </View>\n <View style={styles.bottomButtons}>\n {(props.isSelfLoop == false) && <Button\n style={[CommonStyles.cancelButton, { flexGrow: 1, marginStart: '3%' }]}\n mode=\"outlined\"\n labelStyle={[CommonStyles.cancelButtonLabel, { textTransform: 'capitalize' }]}\n onPress={async () => {\n props.onSubmitET({\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(ExecutionTaskID.IMAGE_CAPTURE, false, props.applicableReasons?.failure),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n });\n }}\n >\n Cancel\n </Button>\n }\n <Button\n labelStyle={{\n color: buttonProceed ? '#ffff' : '#A3AAC2',\n fontFamily: Fonts.IBMPlexSans_500Medium,\n fontSize: 14,\n lineHeight: 20,\n textAlign: 'center',\n textTransform: 'capitalize',\n }}\n style={{\n flexGrow: 1,\n marginHorizontal: '3%',\n backgroundColor: buttonProceed ? '#5B80F7' : '#E0E3EB',\n }}\n disabled={!buttonProceed}\n mode=\"contained\"\n onPress={async () => {\n await handleSubmit();\n }}\n >\n Proceed\n </Button>\n </View>\n </View>\n </Provider>\n );\n};\n\nconst styles = StyleSheet.create({\n\n imageEtContainer: {\n display: 'flex',\n marginStart: 16,\n marginEnd: 16,\n borderWidth: 1,\n borderColor: '#A3AAC2',\n padding: 10,\n marginTop: 15,\n borderStyle: 'dashed',\n backgroundColor: '#FFFFFF',\n alignItems: 'center',\n justifyContent: 'center',\n height: 370,\n borderRadius: 5\n },\n\n bottomButtons: {\n width: \"100%\",\n justifyContent: \"space-between\",\n flexDirection: 'row',\n backgroundColor: \"white\",\n paddingVertical: 12,\n bottom: 0,\n position: \"absolute\",\n borderTopColor: \"#A3AAC2\",\n borderTopWidth: 0.5\n },\n etMessage: {\n // textAlign: 'center',\n fontStyle: 'normal',\n fontWeight: '400',\n fontSize: 16,\n display: 'flex',\n alignItems: 'center',\n color: '#000000',\n fontFamily: Fonts.IBMPlexSans_400Regular\n },\n etMessageView: {\n marginTop: 17,\n paddingStart: 17,\n paddingTop: 15,\n paddingBottom: 15,\n backgroundColor: '#ffffff'\n }\n});\n\nexport default ImageCapture;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useEffect","useState","useLayoutEffect","BackHandler","FlatList","Image","Platform","StyleSheet","Text","TouchableOpacity","View","CaptureUtils","getCaptureOutput","showToast","Iconn","CommonStyles","Fonts","getBaseETResponse","EntityCode","ExecutionTaskID","getEventCodeByET","GO_BACK_EVENT_CODE","Button","Provider","Logger","LOG_TYPE","hasGoBackConnector","GoBackModal","useFocusEffect","Circle","CameraIcon","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","ImageCapture","props","numberOfImagesToCapture","captureMode","captureCountLimit","images","setImages","imagesDummy","setImagesDummy","showCapture","setShowCapture","disableProceed","setDisableProceed","showBackModal","setShowBackModal","buttonProceed","setButtonProceed","numColumns","setNumColumns","onBackPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","navigation","goBack","addEventListener","removeEventListener","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta2","cta","severityLevel","LOG","eventName","BUTTON_CLICKED","screenName","CAPTURE_IMAGE_ET_SCREEN","name","color","size","style","paddingRight","paddingTop","length","arr","i","push","path","ImageItem","_ref","_imagesDummy$index","_imagesDummy$index2","_imagesDummy$index3","_imagesDummy$index4","item","index","width","height","backgroundColor","alignItems","alignSelf","borderWidth","borderColor","borderStyle","borderRadius","marginTop","marginStart","captureImage","uppercase","labelStyle","fontFamily","OS","IBMPlexSans_500Medium","fontStyle","fontWeight","fontSize","letterSpacing","source","uri","bottom","position","top","marginRight","justifyContent","marginLeft","renderModal","showModal","setShowModal","onSuccess","onSubmitET","IMAGE_CAPTURE","mergedObjectiveId","onFailure","handleSubmit","imagesArray","filter","console","log","JSON","stringify","error","message","imageDataResponse","resolution","breadth","fileSizeLimit","imgArray","id","getImagesFileName","url","timestamp","Date","now","deleteImage","imageDummyArray","initialProceedValue","_imageDummyArray$i","err","getInstance","logEvent","SDK_ERROR","renderItem","_ref2","mainContainer","styles","etMessageView","etMessage","data","keyExtractor","contentContainerStyle","paddingBottom","bottomButtons","isSelfLoop","cancelButton","flexGrow","mode","cancelButtonLabel","textTransform","_props$applicableReas","failure","lineHeight","textAlign","marginHorizontal","disabled","create","imageEtContainer","display","marginEnd","padding","flexDirection","paddingVertical","borderTopColor","borderTopWidth","IBMPlexSans_400Regular","paddingStart"],"sources":["ImageCapture.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useLayoutEffect } from 'react';\nimport { BackHandler, FlatList, Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\nimport * as CaptureUtils from './CaptureUtils';\nimport { getCaptureOutput } from './CaptureUtils';\nimport { showToast } from '../../widgets/Toaster';\nimport SdkColors, { ColorTheme } from '../../../styles/SdkColors';\nimport Icon from 'react-native-vector-icons/Feather';\nimport Iconn from 'react-native-vector-icons/MaterialIcons';\nimport { CommonStyles, Fonts } from '../../../styles/executionTasks/CommonStyles';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { EntityCode, ExecutionTaskID } from '../../../models/execTasks/ETConfig';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport { GO_BACK_EVENT_CODE } from '../../../constants/constants';\nimport { Button, Provider } from 'react-native-paper';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { hasGoBackConnector } from '../../../components/utils';\nimport GoBackModal from '../../../components/widgets/GoBackModal';\nimport { useFocusEffect } from '@react-navigation/native';\nimport Circle from \"./circle-xmark.svg\"\n\nimport CameraIcon from \"./camera.svg\"\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\n\nconst ImageCapture = (props: any) => {\n let numberOfImagesToCapture: any;\n if (props.captureMode == \"SINGLE\") {\n numberOfImagesToCapture = 1;\n } else if (props.captureMode === 'MULTI' && props.captureCountLimit && props.captureCountLimit > 0) {\n numberOfImagesToCapture = props.captureCountLimit;\n }\n\n const [images, setImages] = useState([]);\n const [imagesDummy, setImagesDummy] = useState<any[]>([]);\n const [showCapture, setShowCapture] = useState(true);\n const [disableProceed, setDisableProceed] = useState(false);\n const [showBackModal, setShowBackModal] = useState(false);\n const [buttonProceed, setButtonProceed] = useState(false);\n const [numColumns, setNumColumns] = useState(numberOfImagesToCapture <= 2 ? 1 : 2);\n\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n ) {\n setShowBackModal(true);\n return true;\n } else {\n props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [])\n );\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Iconn\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else props.navigation.goBack();\n const cta = \"Back Arrow\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, 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 }, [props.navigation, props.title]);\n\n useEffect(() => {\n\n if (images.length === 0) {\n let arr: any = [];\n for (let i = 0; i < numberOfImagesToCapture; i++) {\n arr.push({ path: '' });\n }\n setImages(arr);\n }\n }, [images]);\n\n\n interface ImageItemProps {\n item: { path: string };\n index: number;\n onPress: () => void;\n }\n\n const ImageItem: React.FC<ImageItemProps> = ({ item, index, onPress }) => {\n\n return (\n <View\n style={{\n width: numColumns == 2 ? '43%' : '88%',\n height: numColumns == 2 ? 160 : numberOfImagesToCapture == 1 ? 336 : 180,\n backgroundColor: 'white',\n alignItems: 'center',\n alignSelf: 'center',\n borderWidth: 1,\n borderColor: '#A3AAC2',\n borderStyle: 'dashed',\n borderRadius: 3,\n marginTop: '6%',\n marginStart: numColumns == 2 ? 17 : numberOfImagesToCapture == 1 ? 0 : 0,\n }}\n >\n <View\n style={{\n alignItems: 'center',\n width: '80%',\n height: '98%',\n borderRadius: 3,\n }}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path ? null : (\n <TouchableOpacity\n onPress={() => { onPress()\n const cta = \"Camera Icon\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n\n }}\n >\n<View\nstyle={{\n marginTop:\n numColumns === 2 ? '32%' : numberOfImagesToCapture === 1 ? '50%' : '20%',\n}}\n>\n<CameraIcon />\n</View>\n</TouchableOpacity>\n \n )}\n <Button\n onPress={() => { captureImage(index)\n const cta = \"Click Photo\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n\n }}\n uppercase={false}\n labelStyle={[\n {\n fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_500Medium : 'IBMPlexSans-Medium',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n color: '#5B80F7',\n },\n ]}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path ? null : 'Click Photo'}\n </Button>\n <Image\n source={{\n uri: imagesDummy?.length > index ? imagesDummy[index]?.path : item?.path,\n }}\n style={{\n height: numColumns == 2 ? '75%' : numberOfImagesToCapture == 1 ? '85%' : '85%',\n width: numColumns == 2 ? '105%' : '118%',\n borderRadius: 10,\n bottom:\n numColumns == 2 ? '6%' : numberOfImagesToCapture == 1 ? '2%' : '11%',\n }}\n />\n <TouchableOpacity\n onPress={() => { onPress()\n const cta = \"Circle Icon\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n \n }}\n style={{\n position: 'absolute',\n top: numColumns == 2 ? '17%' : '9%',\n marginRight: '2%',\n }}\n >\n {imagesDummy?.length > index && imagesDummy[index]?.path && (\n <View\n style={{\n width: 25,\n height: 25,\n backgroundColor: 'white',\n borderRadius: 15,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: numColumns == 2 ? '78%' : '96%',\n }}\n >\n <Circle />\n </View>\n )}\n </TouchableOpacity>\n </View>\n </View>\n );\n };\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n props.onSubmitET({\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n });\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n const handleSubmit = async () => {\n try {\n setDisableProceed(true);\n let imagesArray = imagesDummy.filter(item => item != null && item.path != null && item.path.length != 0);\n console.log('imagesArray:', JSON.stringify(imagesArray));\n\n if (imagesArray.length > 0) {\n props.onSubmitET(await getCaptureOutput(imagesArray, props));\n } else {\n showToast('No Images captured');\n }\n } catch (error: any) {\n setDisableProceed(false);\n showToast(error.message);\n } finally {\n setDisableProceed(false);\n }\n };\n\n // useEffect(() => {\n // if (props.captureMode === 'SINGLE') {\n // if (images.length > 0) {\n // setShowCapture(false);\n // } else setShowCapture(true);\n // } else if (\n // props.captureMode === 'MULTI' &&\n // props.captureCountLimit &&\n // props.captureCountLimit > 0\n // ) {\n // if (images.length === CaptureUtils.getMaxImagesCount(props)) {\n // setShowCapture(false);\n // } else setShowCapture(true);\n // } else {\n // if (images.length > 0) {\n // setShowCapture(true);\n // }\n // }\n // }, [images, props, showCapture]);\n\n const captureImage = useCallback(async (index) => {\n // // if (!showCapture) {\n // // showToast(`Max Image Limit reached`);\n // // return;\n // // }\n // console.log(\"captureImage\", CaptureUtils);\n let imageDataResponse = await CaptureUtils.captureImage(\n props.resolution.breadth,\n props.resolution.length,\n props.fileSizeLimit\n );\n\n if (imageDataResponse != null) {\n setButtonProceed(true);\n\n let imgArray = [];\n imgArray = imagesDummy;\n imgArray[index] = {\n id: CaptureUtils.getImagesFileName(),\n // @ts-ignore\n path: imageDataResponse.uri,\n url: '',\n timestamp: Date.now(),\n };\n setImagesDummy([...imgArray])\n console.log(\"images211:\", JSON.stringify(imgArray));\n\n }\n }, [props.resolution.breadth, props.resolution.length, props.fileSizeLimit]);\n\n\n const deleteImage = async (index: any) => {\n let imageDummyArray = [];\n imageDummyArray = imagesDummy\n imageDummyArray[index].path = \"\"\n setImagesDummy([...imageDummyArray])\n\n let initialProceedValue = false;\n for (let i = 0; i < imageDummyArray.length; i++) {\n if (imageDummyArray[i]?.path) {\n initialProceedValue = true\n }\n }\n setButtonProceed(initialProceedValue);\n\n try {\n // setImagesDummy(filteredImages);\n // setButtonProceed(false);\n } catch (err: any) {\n Logger.getInstance().logEvent('deleteImageError', err.message, LOG_TYPE.SDK_ERROR);\n console.error(\"Error updating state after deletion:\", err);\n }\n };\n\n const renderItem = ({ item, index }: { item: any; index: any }) => {\n return (\n <ImageItem\n item={item}\n index={index}\n onPress={async () => {\n await deleteImage(index);\n const cta = \"Delete Icon\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n \n }}\n />\n );\n };\n\n return (\n <Provider>\n {renderModal()}\n <View style={CommonStyles.mainContainer}>\n {props.message && (\n <View style={styles.etMessageView}>\n <Text style={styles.etMessage}>\n Take a photo of the shipments. Please ensure the items are clearly visible.\n </Text>\n </View>\n )}\n <View\n style={{\n backgroundColor: 'white',\n width: 360,\n height: numColumns == 2 ? '82%' : numberOfImagesToCapture == 1 ? '63%' : '70%',\n alignSelf: 'center',\n marginTop: '5%',\n borderRadius: 7,\n borderColor: '#E0E3EB',\n borderWidth: 0.5,\n }}\n >\n <FlatList\n data={images}\n numColumns={numColumns}\n renderItem={renderItem}\n keyExtractor={(item) => item?.id}\n contentContainerStyle={{ paddingBottom: '30%' }}\n />\n </View>\n <View style={styles.bottomButtons}>\n {(props.isSelfLoop == false) && <Button\n style={[CommonStyles.cancelButton, { flexGrow: 1, marginStart: '3%' }]}\n mode=\"outlined\"\n labelStyle={[CommonStyles.cancelButtonLabel, { textTransform: 'capitalize' }]}\n onPress={async () => {\n props.onSubmitET({\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(ExecutionTaskID.IMAGE_CAPTURE, false, props.applicableReasons?.failure),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n });\n const cta = \"Cancel\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n \n }}\n >\n Cancel\n </Button>\n }\n <Button\n labelStyle={{\n color: buttonProceed ? '#ffff' : '#A3AAC2',\n fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_500Medium : 'IBMPlexSans-Medium',\n fontSize: 14,\n lineHeight: 20,\n textAlign: 'center',\n textTransform: 'capitalize',\n }}\n style={{\n flexGrow: 1,\n marginHorizontal: '3%',\n backgroundColor: buttonProceed ? '#5B80F7' : '#E0E3EB',\n }}\n disabled={!buttonProceed}\n mode=\"contained\"\n onPress={async () => {\n await handleSubmit();\n const cta = \"Proceed\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.CAPTURE_IMAGE_ET_SCREEN, cta: cta }); \n \n }}\n >\n Proceed\n </Button>\n </View>\n </View>\n </Provider>\n );\n};\n\nconst styles = StyleSheet.create({\n\n imageEtContainer: {\n display: 'flex',\n marginStart: 16,\n marginEnd: 16,\n borderWidth: 1,\n borderColor: '#A3AAC2',\n padding: 10,\n marginTop: 15,\n borderStyle: 'dashed',\n backgroundColor: '#FFFFFF',\n alignItems: 'center',\n justifyContent: 'center',\n height: 370,\n borderRadius: 5\n },\n\n bottomButtons: {\n width: \"100%\",\n justifyContent: \"space-between\",\n flexDirection: 'row',\n backgroundColor: \"white\",\n paddingVertical: 12,\n bottom: 0,\n position: \"absolute\",\n borderTopColor: \"#A3AAC2\",\n borderTopWidth: 0.5\n },\n etMessage: {\n // textAlign: 'center',\n fontStyle: 'normal',\n fontWeight: '400',\n fontSize: 16,\n display: 'flex',\n alignItems: 'center',\n color: '#000000',\n fontFamily: Fonts.IBMPlexSans_400Regular\n },\n etMessageView: {\n marginTop: 17,\n paddingStart: 17,\n paddingTop: 15,\n paddingBottom: 15,\n backgroundColor: '#ffffff'\n }\n});\n\nexport default ImageCapture;\n"],"mappings":"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"}
@@ -13,6 +13,8 @@ import GoBackModal from '../../../../components/widgets/GoBackModal';
13
13
  import { hasGoBackConnector } from '../../../../components/utils';
14
14
  import { useFocusEffect } from '@react-navigation/native';
15
15
  import { BackHandler } from 'react-native';
16
+ import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../../analytics/sentry/SentrySdkConstants';
17
+ import { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';
16
18
  const CompletePaymentET = props => {
17
19
  const [disableProceed, setDisableProceed] = useState(false);
18
20
  const [showBackModal, setShowBackModal] = useState(false);
@@ -40,6 +42,13 @@ const CompletePaymentET = props => {
40
42
  onPress: () => {
41
43
  var _props$taskMeta2;
42
44
  if ((_props$taskMeta2 = props.taskMeta) !== null && _props$taskMeta2 !== void 0 && _props$taskMeta2.enableGoBack && hasGoBackConnector(props.applicableReasons)) setShowBackModal(true);else props.navigation.goBack();
45
+ const cta = "Back Arrow";
46
+ fireEventWithScreenName({
47
+ severityLevel: SeverityLevelValue.LOG,
48
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
49
+ screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN,
50
+ cta: cta
51
+ });
43
52
  },
44
53
  name: "arrow-back",
45
54
  color: 'black',
@@ -103,6 +112,13 @@ const CompletePaymentET = props => {
103
112
  };
104
113
  setDisableProceed(true);
105
114
  props.onSubmitET(etOutput);
115
+ const cta = "Continue";
116
+ fireEventWithScreenName({
117
+ severityLevel: SeverityLevelValue.LOG,
118
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
119
+ screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN,
120
+ cta: cta
121
+ });
106
122
  }
107
123
  }, "Continue"), props.isSelfLoop == false && /*#__PURE__*/React.createElement(Button, {
108
124
  labelStyle: CommonStyles.cancelButtonLabel,
@@ -121,6 +137,13 @@ const CompletePaymentET = props => {
121
137
  };
122
138
  setDisableProceed(true);
123
139
  props.onSubmitET(etOutput);
140
+ const cta = "Cancel";
141
+ fireEventWithScreenName({
142
+ severityLevel: SeverityLevelValue.LOG,
143
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
144
+ screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN,
145
+ cta: cta
146
+ });
124
147
  }
125
148
  }, "Cancel"))))));
126
149
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useLayoutEffect","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","Button","Modal","Paragraph","Portal","Provider","Text","Title","Platform","StyleSheet","View","CommonStyles","DeliverPickupStyles","Fonts","getPaymentValue","PaymentStyles","GO_BACK_EVENT_CODE","Icon","GoBackModal","hasGoBackConnector","useFocusEffect","BackHandler","CompletePaymentET","props","disableProceed","setDisableProceed","showBackModal","setShowBackModal","useCallback","onBackPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","navigation","goBack","addEventListener","removeEventListener","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta2","name","color","size","style","paddingRight","paddingTop","renderModal","showModal","setShowModal","onSuccess","onSubmitET","paymentMode","collectedAmount","tenantTransactionId","COMPLETE_PAYMENT","mergedObjectiveId","onFailure","mainContainer","dismissable","visible","contentContainerStyle","modalContent","modalView","styles","amountStyle","expectedAmount","currencyCode","value","minorUnit","toLocaleString","message","message1","disabled","mode","uppercase","labelStyle","nextButtonLabel","nextButton","marginTop","_props$applicableReas","etOutput","success","isSelfLoop","cancelButtonLabel","cancelButton","_props$applicableReas2","failure","create","fontSize","fontStyle","fontWeight","lineHeight","textAlign","fontFamily","OS","IBMPlexSans_600SemiBold","IBMPlexSans_400Regular"],"sources":["CompletePaymentET.tsx"],"sourcesContent":["import React, { useState, useLayoutEffect } from 'react';\nimport type {\n CompletePaymentInput,\n CompletePaymentOutput,\n} from './CompletePaymentSchema';\nimport { getBaseETResponse } from '../../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../../models/execTasks/ETConfig';\nimport {\n Button,\n Modal,\n Paragraph,\n Portal,\n Provider,\n Text,\n Title,\n} from 'react-native-paper';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport {\n CommonStyles,\n DeliverPickupStyles,\n Fonts,\n} from '../../../../styles/executionTasks/CommonStyles';\nimport { getPaymentValue } from '../PaymentUtils';\nimport { PaymentStyles } from '../PaymentStyles';\nimport { GO_BACK_EVENT_CODE } from '../../../../constants/constants';\nimport Icon from 'react-native-vector-icons/MaterialIcons';\nimport GoBackModal from '../../../../components/widgets/GoBackModal';\nimport { hasGoBackConnector } from '../../../../components/utils';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { BackHandler } from 'react-native';\n\nconst CompletePaymentET = (props: CompletePaymentInput) => {\n const [disableProceed, setDisableProceed] = useState(false);\n const [showBackModal, setShowBackModal] = useState(false);\n\n // Handle back-button click\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n ) {\n setShowBackModal(true);\n return true;\n } else {\n props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [])\n );\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Icon\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else props.navigation.goBack();\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 }, [props.navigation, props.title]);\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n props.onSubmitET({\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId,\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n });\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n return (\n <Provider>\n {renderModal()}\n <Portal>\n <View style={DeliverPickupStyles.mainContainer}>\n <Modal\n dismissable={false}\n visible={true}\n contentContainerStyle={DeliverPickupStyles.modalContent}\n >\n <View style={DeliverPickupStyles.modalView}>\n <Title style={[styles.title, { color: 'grey' }]}>\n {props.title}\n </Title>\n <Paragraph style={PaymentStyles.amountStyle}>\n {props.expectedAmount.currencyCode +\n ' ' +\n getPaymentValue(\n props.expectedAmount.value,\n props.expectedAmount.minorUnit\n ).toLocaleString()}\n </Paragraph>\n {props.message && (\n <Text style={styles.message1}>{props.message}</Text>\n )}\n <Button\n disabled={disableProceed}\n mode={'contained'}\n uppercase={false}\n labelStyle={CommonStyles.nextButtonLabel}\n style={[\n CommonStyles.nextButton,\n {\n marginTop: 20,\n },\n ]}\n onPress={async () => {\n let etOutput: CompletePaymentOutput = {\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId, // todo Hardcoded for SL Release and is only for CASH Payment Type\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n true,\n getEventCodeByET(\n ExecutionTaskID.COMPLETE_PAYMENT,\n true,\n props.applicableReasons?.success\n ),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n };\n setDisableProceed(true);\n props.onSubmitET(etOutput);\n }}\n >\n Continue\n </Button>\n {(props.isSelfLoop == false) && <Button\n labelStyle={CommonStyles.cancelButtonLabel}\n style={[CommonStyles.cancelButton, { marginTop: 10 }]}\n mode={'outlined'}\n onPress={async () => {\n let etOutput: CompletePaymentOutput = {\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId, // todo Hardcoded for SL Release and is only for CASH Payment Type\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n false,\n getEventCodeByET(\n ExecutionTaskID.COMPLETE_PAYMENT,\n false,\n props.applicableReasons?.failure\n ),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n };\n setDisableProceed(true);\n props.onSubmitET(etOutput);\n }}\n >\n Cancel\n </Button>\n }\n </View>\n </Modal>\n </View>\n </Portal>\n </Provider>\n );\n};\nexport default CompletePaymentET;\n\nconst styles = StyleSheet.create({\n title: {\n fontSize: 18,\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: 28,\n textAlign: 'center',\n color: '#111111',\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_600SemiBold\n : 'IBMPlexSans-SemiBold',\n },\n message1: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: 12,\n lineHeight: 20,\n textAlign: 'center',\n color: '#111111',\n marginTop: 12,\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","useLayoutEffect","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","Button","Modal","Paragraph","Portal","Provider","Text","Title","Platform","StyleSheet","View","CommonStyles","DeliverPickupStyles","Fonts","getPaymentValue","PaymentStyles","GO_BACK_EVENT_CODE","Icon","GoBackModal","hasGoBackConnector","useFocusEffect","BackHandler","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","CompletePaymentET","props","disableProceed","setDisableProceed","showBackModal","setShowBackModal","useCallback","onBackPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","navigation","goBack","addEventListener","removeEventListener","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta2","cta","severityLevel","LOG","eventName","BUTTON_CLICKED","screenName","COMPLETE_PAYMENT_ET_SCREEN","name","color","size","style","paddingRight","paddingTop","renderModal","showModal","setShowModal","onSuccess","onSubmitET","paymentMode","collectedAmount","tenantTransactionId","COMPLETE_PAYMENT","mergedObjectiveId","onFailure","mainContainer","dismissable","visible","contentContainerStyle","modalContent","modalView","styles","amountStyle","expectedAmount","currencyCode","value","minorUnit","toLocaleString","message","message1","disabled","mode","uppercase","labelStyle","nextButtonLabel","nextButton","marginTop","_props$applicableReas","etOutput","success","isSelfLoop","cancelButtonLabel","cancelButton","_props$applicableReas2","failure","create","fontSize","fontStyle","fontWeight","lineHeight","textAlign","fontFamily","OS","IBMPlexSans_600SemiBold","IBMPlexSans_400Regular"],"sources":["CompletePaymentET.tsx"],"sourcesContent":["import React, { useState, useLayoutEffect } from 'react';\nimport type {\n CompletePaymentInput,\n CompletePaymentOutput,\n} from './CompletePaymentSchema';\nimport { getBaseETResponse } from '../../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../../models/execTasks/ETConfig';\nimport {\n Button,\n Modal,\n Paragraph,\n Portal,\n Provider,\n Text,\n Title,\n} from 'react-native-paper';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport {\n CommonStyles,\n DeliverPickupStyles,\n Fonts,\n} from '../../../../styles/executionTasks/CommonStyles';\nimport { getPaymentValue } from '../PaymentUtils';\nimport { PaymentStyles } from '../PaymentStyles';\nimport { GO_BACK_EVENT_CODE } from '../../../../constants/constants';\nimport Icon from 'react-native-vector-icons/MaterialIcons';\nimport GoBackModal from '../../../../components/widgets/GoBackModal';\nimport { hasGoBackConnector } from '../../../../components/utils';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { BackHandler } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';\n\nconst CompletePaymentET = (props: CompletePaymentInput) => {\n const [disableProceed, setDisableProceed] = useState(false);\n const [showBackModal, setShowBackModal] = useState(false);\n\n // Handle back-button click\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n ) {\n setShowBackModal(true);\n return true;\n } else {\n props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [])\n );\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Icon\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else props.navigation.goBack();\n const cta = \"Back Arrow\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN, 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 }, [props.navigation, props.title]);\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n props.onSubmitET({\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId,\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n });\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n return (\n <Provider>\n {renderModal()}\n <Portal>\n <View style={DeliverPickupStyles.mainContainer}>\n <Modal\n dismissable={false}\n visible={true}\n contentContainerStyle={DeliverPickupStyles.modalContent}\n >\n <View style={DeliverPickupStyles.modalView}>\n <Title style={[styles.title, { color: 'grey' }]}>\n {props.title}\n </Title>\n <Paragraph style={PaymentStyles.amountStyle}>\n {props.expectedAmount.currencyCode +\n ' ' +\n getPaymentValue(\n props.expectedAmount.value,\n props.expectedAmount.minorUnit\n ).toLocaleString()}\n </Paragraph>\n {props.message && (\n <Text style={styles.message1}>{props.message}</Text>\n )}\n <Button\n disabled={disableProceed}\n mode={'contained'}\n uppercase={false}\n labelStyle={CommonStyles.nextButtonLabel}\n style={[\n CommonStyles.nextButton,\n {\n marginTop: 20,\n },\n ]}\n onPress={async () => {\n let etOutput: CompletePaymentOutput = {\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId, // todo Hardcoded for SL Release and is only for CASH Payment Type\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n true,\n getEventCodeByET(\n ExecutionTaskID.COMPLETE_PAYMENT,\n true,\n props.applicableReasons?.success\n ),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n };\n setDisableProceed(true);\n props.onSubmitET(etOutput);\n const cta = \"Continue\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN, cta: cta }); \n \n }}\n >\n Continue\n </Button>\n {(props.isSelfLoop == false) && <Button\n labelStyle={CommonStyles.cancelButtonLabel}\n style={[CommonStyles.cancelButton, { marginTop: 10 }]}\n mode={'outlined'}\n onPress={async () => {\n let etOutput: CompletePaymentOutput = {\n paymentMode: props.paymentMode,\n collectedAmount: props.collectedAmount,\n tenantTransactionId: props.tenantTransactionId, // todo Hardcoded for SL Release and is only for CASH Payment Type\n ...(await getBaseETResponse(\n EntityCode.COMPLETE_PAYMENT,\n false,\n getEventCodeByET(\n ExecutionTaskID.COMPLETE_PAYMENT,\n false,\n props.applicableReasons?.failure\n ),\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.COMPLETE_PAYMENT\n )),\n };\n setDisableProceed(true);\n props.onSubmitET(etOutput);\n const cta = \"Cancel\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.COMPLETE_PAYMENT_ET_SCREEN, cta: cta }); \n \n }}\n >\n Cancel\n </Button>\n }\n </View>\n </Modal>\n </View>\n </Portal>\n </Provider>\n );\n};\nexport default CompletePaymentET;\n\nconst styles = StyleSheet.create({\n title: {\n fontSize: 18,\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: 28,\n textAlign: 'center',\n color: '#111111',\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_600SemiBold\n : 'IBMPlexSans-SemiBold',\n },\n message1: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: 12,\n lineHeight: 20,\n textAlign: 'center',\n color: '#111111',\n marginTop: 12,\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans-Regular',\n },\n});\n"],"mappings":"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"}
@@ -15,6 +15,8 @@ import { hasGoBackConnector } from '../../../../components/utils';
15
15
  import GoBackModal from '../../../../components/widgets/GoBackModal';
16
16
  import { useFocusEffect } from '@react-navigation/native';
17
17
  import { BackHandler } from 'react-native';
18
+ import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../../analytics/sentry/SentrySdkConstants';
19
+ import { fireEventWithScreenName } from '../../../../analytics/sentry/SentryAnalyticsUtils';
18
20
  const styles = PaymentStyles;
19
21
  const footerMessage = message => {
20
22
  if (message) return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
@@ -51,6 +53,13 @@ const InitPaymentET = props => {
51
53
  onPress: () => {
52
54
  var _props$taskMeta2;
53
55
  if ((_props$taskMeta2 = props.taskMeta) !== null && _props$taskMeta2 !== void 0 && _props$taskMeta2.enableGoBack && hasGoBackConnector(props.applicableReasons)) setShowBackModal(true);else props.navigation.goBack();
56
+ const cta = "Back Arrow";
57
+ fireEventWithScreenName({
58
+ severityLevel: SeverityLevelValue.LOG,
59
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
60
+ screenName: ScreenNameSdkConstants.INIT_PAYMENT_ET_SCREEN,
61
+ cta: cta
62
+ });
54
63
  },
55
64
  name: "arrow-back",
56
65
  color: 'black',
@@ -93,11 +102,25 @@ const InitPaymentET = props => {
93
102
  status: paymentMode === item ? 'checked' : 'unchecked',
94
103
  onPress: () => {
95
104
  setPaymentMode(item);
105
+ const cta = paymentMode === item ? 'paymentMode checked' : 'paymentMode unchecked';
106
+ fireEventWithScreenName({
107
+ severityLevel: SeverityLevelValue.LOG,
108
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
109
+ screenName: ScreenNameSdkConstants.INIT_PAYMENT_ET_SCREEN,
110
+ cta: cta
111
+ });
96
112
  }
97
113
  }), /*#__PURE__*/React.createElement(Text, {
98
114
  style: styles.reasonTextStyle,
99
115
  onPress: () => {
100
116
  setPaymentMode(item);
117
+ const cta = item;
118
+ fireEventWithScreenName({
119
+ severityLevel: SeverityLevelValue.LOG,
120
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
121
+ screenName: ScreenNameSdkConstants.INIT_PAYMENT_ET_SCREEN,
122
+ cta: cta
123
+ });
101
124
  }
102
125
  }, item));
103
126
  };
@@ -143,6 +166,13 @@ const InitPaymentET = props => {
143
166
  transactionId: getUniqueTransactionID(props.amount.value),
144
167
  ...(await getBaseETResponse(EntityCode.INIT_PAYMENT, false, getEventCodeByET(ExecutionTaskID.INIT_PAYMENT, false, (_props$applicableReas = props.applicableReasons) === null || _props$applicableReas === void 0 ? void 0 : _props$applicableReas.failure), '', props.mergedObjectiveId, ExecutionTaskID.INIT_PAYMENT))
145
168
  });
169
+ const cta = 'Cancel';
170
+ fireEventWithScreenName({
171
+ severityLevel: SeverityLevelValue.LOG,
172
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
173
+ screenName: ScreenNameSdkConstants.INIT_PAYMENT_ET_SCREEN,
174
+ cta: cta
175
+ });
146
176
  }
147
177
  }, "Cancel"), /*#__PURE__*/React.createElement(Button, {
148
178
  disabled: disableNext,
@@ -162,6 +192,13 @@ const InitPaymentET = props => {
162
192
  ...(await getBaseETResponse(EntityCode.INIT_PAYMENT, true, getEventCodeByET(ExecutionTaskID.INIT_PAYMENT, true, (_props$applicableReas2 = props.applicableReasons) === null || _props$applicableReas2 === void 0 ? void 0 : _props$applicableReas2.success), '', props.mergedObjectiveId, ExecutionTaskID.INIT_PAYMENT))
163
193
  });
164
194
  } else showToast('No payment mode selected');
195
+ const cta = 'Collect';
196
+ fireEventWithScreenName({
197
+ severityLevel: SeverityLevelValue.LOG,
198
+ eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
199
+ screenName: ScreenNameSdkConstants.INIT_PAYMENT_ET_SCREEN,
200
+ cta: cta
201
+ });
165
202
  }
166
203
  }, "Collect")))));
167
204
  };