@os1-platform/dispatch-mobile 2.0.8 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dispatch-mobile.podspec +35 -0
- package/ios/DispatchSdk-Bridging-Header.h +3 -0
- package/ios/DispatchSdk.m +9 -0
- package/ios/DispatchSdk.swift +8 -0
- package/ios/DispatchSdk.xcodeproj/project.pbxproj +317 -0
- package/ios/EventEmitter.swift +21 -0
- package/ios/EventsConstant.swift +13 -0
- package/ios/RNEventEmitter.m +15 -0
- package/ios/RNEventEmitter.swift +24 -0
- package/lib/commonjs/components/dispatch/DispatchExecNavigator.js +3 -4
- package/lib/commonjs/components/dispatch/DispatchExecNavigator.js.map +1 -1
- package/lib/commonjs/components/executiontasks/cancellation/CancelET.js +13 -8
- package/lib/commonjs/components/executiontasks/cancellation/CancelET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js +3 -4
- package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js.map +1 -1
- package/lib/commonjs/components/executiontasks/deliver/DeliverET.js +3 -4
- package/lib/commonjs/components/executiontasks/deliver/DeliverET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/deliver/DeliverETInput.js.map +1 -1
- package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js +97 -23
- package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/display/DisplayModalET.js +7 -8
- package/lib/commonjs/components/executiontasks/display/DisplayModalET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/doodle/SignatureET.js +36 -13
- package/lib/commonjs/components/executiontasks/doodle/SignatureET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js +3 -4
- package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js +6 -7
- package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/FormGenerator.js +5 -6
- package/lib/commonjs/components/executiontasks/forms/FormGenerator.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js +4 -5
- package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/DropdownWidget.js +3 -4
- package/lib/commonjs/components/executiontasks/forms/widgets/DropdownWidget.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +3 -4
- package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/TimeRangeSelector.js +3 -4
- package/lib/commonjs/components/executiontasks/forms/widgets/TimeRangeSelector.js.map +1 -1
- package/lib/commonjs/components/executiontasks/httpRequest/HttpRequestET.js +3 -4
- package/lib/commonjs/components/executiontasks/httpRequest/HttpRequestET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +136 -22
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +8 -8
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/PaymentStyles.js +6 -7
- package/lib/commonjs/components/executiontasks/payments/PaymentStyles.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js +5 -6
- package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js +3 -4
- package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js +3 -4
- package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/pickup/PickupET.js +3 -4
- package/lib/commonjs/components/executiontasks/pickup/PickupET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js +81 -13
- package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/ScanET.js +14 -15
- package/lib/commonjs/components/executiontasks/scan/ScanET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/ScanSchema.js +1 -2
- package/lib/commonjs/components/executiontasks/scan/ScanSchema.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/constants.js +6 -12
- package/lib/commonjs/components/executiontasks/scan/constants.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/interfaces.js +4 -8
- package/lib/commonjs/components/executiontasks/scan/interfaces.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/sub_components/CScanner.js +4 -5
- package/lib/commonjs/components/executiontasks/scan/sub_components/CScanner.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/sub_components/ERDropDown.js +5 -6
- package/lib/commonjs/components/executiontasks/scan/sub_components/ERDropDown.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js +8 -9
- package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/utils.js +2 -2
- package/lib/commonjs/components/executiontasks/scan/utils.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +8 -9
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js +1 -2
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/constants.js +6 -12
- package/lib/commonjs/components/executiontasks/validateOTP/constants.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js +5 -6
- package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/utils.js +2 -2
- package/lib/commonjs/components/executiontasks/validateOTP/utils.js.map +1 -1
- package/lib/commonjs/components/executiontasks/verifyLocation/GeofenceUtils.js +2 -2
- package/lib/commonjs/components/executiontasks/verifyLocation/GeofenceUtils.js.map +1 -1
- package/lib/commonjs/components/executiontasks/verifyLocation/VerifyLocationET.js +3 -4
- package/lib/commonjs/components/executiontasks/verifyLocation/VerifyLocationET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js +3 -4
- package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
- package/lib/commonjs/components/widgets/AlertDisplay.js +14 -9
- package/lib/commonjs/components/widgets/AlertDisplay.js.map +1 -1
- package/lib/commonjs/components/widgets/CancelOrderDialog.js +5 -6
- package/lib/commonjs/components/widgets/CancelOrderDialog.js.map +1 -1
- package/lib/commonjs/components/widgets/Card.js +2 -3
- package/lib/commonjs/components/widgets/Card.js.map +1 -1
- package/lib/commonjs/components/widgets/GoBackModal.js +1 -2
- package/lib/commonjs/components/widgets/GoBackModal.js.map +1 -1
- package/lib/commonjs/components/widgets/IconButton.js +1 -2
- package/lib/commonjs/components/widgets/IconButton.js.map +1 -1
- package/lib/commonjs/components/widgets/ModalWidget.js +3 -4
- package/lib/commonjs/components/widgets/ModalWidget.js.map +1 -1
- package/lib/commonjs/components/widgets/ProgressDialog.js +2 -3
- package/lib/commonjs/components/widgets/ProgressDialog.js.map +1 -1
- package/lib/commonjs/components/widgets/SearchBar.js +1 -2
- package/lib/commonjs/components/widgets/SearchBar.js.map +1 -1
- package/lib/commonjs/components/widgets/SnackBarCustom.js +3 -5
- package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
- package/lib/commonjs/components/widgets/SplitTextInput.js +3 -4
- package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
- package/lib/commonjs/components/widgets/TabsComponent.js +3 -4
- package/lib/commonjs/components/widgets/TabsComponent.js.map +1 -1
- package/lib/commonjs/config/DispatchSDKConfig.js +1 -2
- package/lib/commonjs/config/DispatchSDKConfig.js.map +1 -1
- package/lib/commonjs/constants/apiConstants.js +2 -4
- package/lib/commonjs/constants/apiConstants.js.map +1 -1
- package/lib/commonjs/constants/constants.js +11 -22
- package/lib/commonjs/constants/constants.js.map +1 -1
- package/lib/commonjs/constants/statuscode.js +1 -2
- package/lib/commonjs/constants/statuscode.js.map +1 -1
- package/lib/commonjs/errors/ErrorCodes.js +7 -14
- package/lib/commonjs/errors/ErrorCodes.js.map +1 -1
- package/lib/commonjs/events/EventDispatcher.js +5 -3
- package/lib/commonjs/events/EventDispatcher.js.map +1 -1
- package/lib/commonjs/events/EventListener.js +1 -2
- package/lib/commonjs/events/EventListener.js.map +1 -1
- package/lib/commonjs/events/constants.js +1 -2
- package/lib/commonjs/events/constants.js.map +1 -1
- package/lib/commonjs/events/index.js +1 -2
- package/lib/commonjs/events/index.js.map +1 -1
- package/lib/commonjs/icons/ScanIcon.js +1 -2
- package/lib/commonjs/icons/ScanIcon.js.map +1 -1
- package/lib/commonjs/icons/circleMark.svg +3 -0
- package/lib/commonjs/icons/file.js +1 -2
- package/lib/commonjs/icons/file.js.map +1 -1
- package/lib/commonjs/index.js +8 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/locale/Str.js +1 -2
- package/lib/commonjs/locale/Str.js.map +1 -1
- package/lib/commonjs/locale/i18n.js +2 -3
- package/lib/commonjs/locale/i18n.js.map +1 -1
- package/lib/commonjs/manager/dispatch/DispatchStateContainer.js +5 -3
- package/lib/commonjs/manager/dispatch/DispatchStateContainer.js.map +1 -1
- package/lib/commonjs/manager/dispatchCodes/EventCodeContainer.js +2 -0
- package/lib/commonjs/manager/dispatchCodes/EventCodeContainer.js.map +1 -1
- package/lib/commonjs/manager/dispatchCodes/EventCodeRepo.js +4 -2
- package/lib/commonjs/manager/dispatchCodes/EventCodeRepo.js.map +1 -1
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeContainer.js +4 -2
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeContainer.js.map +1 -1
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeRepo.js +4 -2
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeRepo.js.map +1 -1
- package/lib/commonjs/manager/location/LocationManager.js +7 -4
- package/lib/commonjs/manager/location/LocationManager.js.map +1 -1
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js +4 -2
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/commonjs/manager/sdk/DispatchSdkCache.js +2 -0
- package/lib/commonjs/manager/sdk/DispatchSdkCache.js.map +1 -1
- package/lib/commonjs/manager/sdk/callbacksHandler.js +1 -2
- package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/AppSyncManager.js +4 -2
- package/lib/commonjs/manager/syncmanager/AppSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/DBConfig.js +14 -26
- package/lib/commonjs/manager/syncmanager/DBConfig.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/NativeSyncManager.js +1 -2
- package/lib/commonjs/manager/syncmanager/NativeSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/constants.js +5 -10
- package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/database.js +2 -2
- package/lib/commonjs/manager/syncmanager/database.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +5 -4
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +4 -2
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +4 -2
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js +4 -2
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js +4 -2
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/commonjs/models/DispatchModels.js +1 -2
- package/lib/commonjs/models/DispatchModels.js.map +1 -1
- package/lib/commonjs/models/execTasks/ETConfig.js +6 -12
- package/lib/commonjs/models/execTasks/ETConfig.js.map +1 -1
- package/lib/commonjs/models/fcm.js.map +1 -1
- package/lib/commonjs/models/sdk.js +1 -2
- package/lib/commonjs/models/sdk.js.map +1 -1
- package/lib/commonjs/native/signature/SignatureCapture.js +1 -2
- package/lib/commonjs/native/signature/SignatureCapture.js.map +1 -1
- package/lib/commonjs/network/GraphQLClient.js +48 -4
- package/lib/commonjs/network/GraphQLClient.js.map +1 -1
- package/lib/commonjs/network/Queries.js +5 -10
- package/lib/commonjs/network/Queries.js.map +1 -1
- package/lib/commonjs/res/strings.js +1 -2
- package/lib/commonjs/res/strings.js.map +1 -1
- package/lib/commonjs/resources/Login.js +1 -2
- package/lib/commonjs/resources/Login.js.map +1 -1
- package/lib/commonjs/resources/network.js +1 -2
- package/lib/commonjs/resources/network.js.map +1 -1
- package/lib/commonjs/styles/SdkColors.js +2 -4
- package/lib/commonjs/styles/SdkColors.js.map +1 -1
- package/lib/commonjs/styles/executionTasks/CommonStyles.js +6 -10
- package/lib/commonjs/styles/executionTasks/CommonStyles.js.map +1 -1
- package/lib/commonjs/ui/screens/CancellationScreen.js +3 -4
- package/lib/commonjs/ui/screens/CancellationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CaptureInputScreen.js +5 -5
- package/lib/commonjs/ui/screens/CaptureInputScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CompleteObjectiveScreen.js +3 -4
- package/lib/commonjs/ui/screens/CompleteObjectiveScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DeliverScreen.js +9 -5
- package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DisplayScreen.js +3 -4
- package/lib/commonjs/ui/screens/DisplayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DoodleScreen.js +5 -5
- package/lib/commonjs/ui/screens/DoodleScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DropCashScreen.js +5 -5
- package/lib/commonjs/ui/screens/DropCashScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FormsScreen.js +3 -4
- package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/GeofenceScreen.js +3 -4
- package/lib/commonjs/ui/screens/GeofenceScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HttpRequestScreen.js +1 -2
- package/lib/commonjs/ui/screens/HttpRequestScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ImageCaptureScreen.js +3 -4
- package/lib/commonjs/ui/screens/ImageCaptureScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentScreen.js +6 -6
- package/lib/commonjs/ui/screens/PaymentScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PickupScreen.js +4 -5
- package/lib/commonjs/ui/screens/PickupScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ScanScreen.js +3 -4
- package/lib/commonjs/ui/screens/ScanScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/StartWorkFlowScreen.js +8 -7
- package/lib/commonjs/ui/screens/StartWorkFlowScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ValidateOTPScreen.js +3 -4
- package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WithBaseDispatchScreen.js +4 -4
- package/lib/commonjs/ui/screens/WithBaseDispatchScreen.js.map +1 -1
- package/lib/commonjs/ui/uiConfig/RouteParams.js +1 -2
- package/lib/commonjs/ui/uiConfig/RouteParams.js.map +1 -1
- package/lib/commonjs/utils/ApiUtils.js +2 -4
- package/lib/commonjs/utils/ApiUtils.js.map +1 -1
- package/lib/commonjs/utils/Logger.js +10 -9
- package/lib/commonjs/utils/Logger.js.map +1 -1
- package/lib/commonjs/utils/NetworkUtil.js +1 -2
- package/lib/commonjs/utils/NetworkUtil.js.map +1 -1
- package/lib/commonjs/utils/SdkUtils.js +12 -8
- package/lib/commonjs/utils/SdkUtils.js.map +1 -1
- package/lib/commonjs/utils/SyncManagerUtils.js +2 -2
- package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
- package/lib/commonjs/utils/fcm/FCM.js +3 -4
- package/lib/commonjs/utils/fcm/FCM.js.map +1 -1
- package/lib/commonjs/utils/fcm/FcmUtils.js +14 -2
- package/lib/commonjs/utils/fcm/FcmUtils.js.map +1 -1
- package/lib/commonjs/utils/helper.js +1 -2
- package/lib/commonjs/utils/helper.js.map +1 -1
- package/lib/commonjs/utils/hooks/useModal.js +3 -4
- package/lib/commonjs/utils/hooks/useModal.js.map +1 -1
- package/lib/commonjs/utils/hooks/useTimer.js +1 -2
- package/lib/commonjs/utils/hooks/useTimer.js.map +1 -1
- package/lib/commonjs/utils/loginHelper.js +1 -2
- package/lib/commonjs/utils/loginHelper.js.map +1 -1
- package/lib/commonjs/utils/storage.js +71 -13
- package/lib/commonjs/utils/storage.js.map +1 -1
- package/lib/module/components/dispatch/DispatchExecNavigator.js.map +1 -1
- package/lib/module/components/executiontasks/cancellation/CancelET.js +11 -5
- package/lib/module/components/executiontasks/cancellation/CancelET.js.map +1 -1
- package/lib/module/components/executiontasks/deliver/DeliverETInput.js.map +1 -1
- package/lib/module/components/executiontasks/deliver/SLDeliverET.js +96 -20
- package/lib/module/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
- package/lib/module/components/executiontasks/display/DisplayModalET.js +5 -5
- package/lib/module/components/executiontasks/display/DisplayModalET.js.map +1 -1
- package/lib/module/components/executiontasks/doodle/SignatureET.js +34 -10
- package/lib/module/components/executiontasks/doodle/SignatureET.js.map +1 -1
- package/lib/module/components/executiontasks/dropCash/SLDropCash.js +4 -4
- package/lib/module/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
- package/lib/module/components/executiontasks/forms/FormGenerator.js +3 -3
- package/lib/module/components/executiontasks/forms/FormGenerator.js.map +1 -1
- package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js +1 -1
- package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +131 -18
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +3 -3
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/module/components/executiontasks/payments/PaymentStyles.js +6 -6
- package/lib/module/components/executiontasks/payments/PaymentStyles.js.map +1 -1
- package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js +3 -3
- package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
- package/lib/module/components/executiontasks/pickup/SLPickupET.js +79 -10
- package/lib/module/components/executiontasks/pickup/SLPickupET.js.map +1 -1
- package/lib/module/components/executiontasks/scan/ScanET.js +12 -12
- package/lib/module/components/executiontasks/scan/ScanET.js.map +1 -1
- package/lib/module/components/executiontasks/scan/sub_components/CScanner.js +2 -2
- package/lib/module/components/executiontasks/scan/sub_components/CScanner.js.map +1 -1
- package/lib/module/components/executiontasks/scan/sub_components/ERDropDown.js +3 -3
- package/lib/module/components/executiontasks/scan/sub_components/ERDropDown.js.map +1 -1
- package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js +6 -6
- package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
- package/lib/module/components/executiontasks/scan/utils.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +6 -6
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js +3 -3
- package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
- package/lib/module/components/widgets/AlertDisplay.js +12 -7
- package/lib/module/components/widgets/AlertDisplay.js.map +1 -1
- package/lib/module/components/widgets/CancelOrderDialog.js +3 -3
- package/lib/module/components/widgets/CancelOrderDialog.js.map +1 -1
- package/lib/module/components/widgets/Card.js +1 -1
- package/lib/module/components/widgets/Card.js.map +1 -1
- package/lib/module/components/widgets/ModalWidget.js +3 -3
- package/lib/module/components/widgets/ModalWidget.js.map +1 -1
- package/lib/module/components/widgets/ProgressDialog.js +2 -2
- package/lib/module/components/widgets/ProgressDialog.js.map +1 -1
- package/lib/module/components/widgets/SnackBarCustom.js +2 -2
- package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
- package/lib/module/events/EventDispatcher.js +5 -2
- package/lib/module/events/EventDispatcher.js.map +1 -1
- package/lib/module/icons/circleMark.svg +3 -0
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/locale/i18n.js +1 -1
- package/lib/module/locale/i18n.js.map +1 -1
- package/lib/module/manager/dispatch/DispatchStateContainer.js +3 -1
- package/lib/module/manager/dispatch/DispatchStateContainer.js.map +1 -1
- package/lib/module/manager/dispatchCodes/EventCodeContainer.js +2 -0
- package/lib/module/manager/dispatchCodes/EventCodeContainer.js.map +1 -1
- package/lib/module/manager/dispatchCodes/EventCodeRepo.js +2 -0
- package/lib/module/manager/dispatchCodes/EventCodeRepo.js.map +1 -1
- package/lib/module/manager/dispatchCodes/ReasonCodeContainer.js +2 -0
- package/lib/module/manager/dispatchCodes/ReasonCodeContainer.js.map +1 -1
- package/lib/module/manager/dispatchCodes/ReasonCodeRepo.js +2 -0
- package/lib/module/manager/dispatchCodes/ReasonCodeRepo.js.map +1 -1
- package/lib/module/manager/location/LocationManager.js +2 -0
- package/lib/module/manager/location/LocationManager.js.map +1 -1
- package/lib/module/manager/sdk/DispatchSDKManager.js +2 -0
- package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/module/manager/sdk/DispatchSdkCache.js +2 -0
- package/lib/module/manager/sdk/DispatchSdkCache.js.map +1 -1
- package/lib/module/manager/syncmanager/AppSyncManager.js +2 -0
- package/lib/module/manager/syncmanager/AppSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentManager.js +2 -0
- package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +2 -0
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/ETEventsManager.js +2 -0
- package/lib/module/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js +2 -0
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/module/models/fcm.js.map +1 -1
- package/lib/module/network/GraphQLClient.js +48 -3
- package/lib/module/network/GraphQLClient.js.map +1 -1
- package/lib/module/ui/screens/CaptureInputScreen.js +2 -1
- package/lib/module/ui/screens/CaptureInputScreen.js.map +1 -1
- package/lib/module/ui/screens/DeliverScreen.js +6 -1
- package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/module/ui/screens/DoodleScreen.js +2 -1
- package/lib/module/ui/screens/DoodleScreen.js.map +1 -1
- package/lib/module/ui/screens/DropCashScreen.js +2 -2
- package/lib/module/ui/screens/DropCashScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentScreen.js +3 -2
- package/lib/module/ui/screens/PaymentScreen.js.map +1 -1
- package/lib/module/ui/screens/PickupScreen.js +1 -1
- package/lib/module/ui/screens/PickupScreen.js.map +1 -1
- package/lib/module/ui/screens/StartWorkFlowScreen.js +6 -4
- package/lib/module/ui/screens/StartWorkFlowScreen.js.map +1 -1
- package/lib/module/ui/screens/WithBaseDispatchScreen.js +1 -0
- package/lib/module/ui/screens/WithBaseDispatchScreen.js.map +1 -1
- package/lib/module/utils/Logger.js +2 -0
- package/lib/module/utils/Logger.js.map +1 -1
- package/lib/module/utils/SdkUtils.js +11 -7
- package/lib/module/utils/SdkUtils.js.map +1 -1
- package/lib/module/utils/fcm/FcmUtils.js +11 -0
- package/lib/module/utils/fcm/FcmUtils.js.map +1 -1
- package/lib/module/utils/storage.js +69 -10
- package/lib/module/utils/storage.js.map +1 -1
- package/lib/typescript/components/executiontasks/deliver/DeliverETInput.d.ts +3 -0
- package/lib/typescript/components/executiontasks/payments/PaymentStyles.d.ts +4 -5
- package/lib/typescript/components/widgets/SnackBarCustom.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/models/fcm.d.ts +3 -0
- package/lib/typescript/utils/fcm/FcmUtils.d.ts +2 -1
- package/lib/typescript/utils/storage.d.ts +3 -2
- package/package.json +23 -8
- package/src/@types/assets/index.d.ts +6 -0
- package/src/components/dispatch/DispatchExecNavigator.tsx +273 -0
- package/src/components/executiontasks/CompletedWFSchema.ts +24 -0
- package/src/components/executiontasks/ExecutionTasksIndex.ts +137 -0
- package/src/components/executiontasks/cancellation/CancelET.tsx +281 -0
- package/src/components/executiontasks/cancellation/CancellationSchema.ts +30 -0
- package/src/components/executiontasks/captureInput/CaptureInputSchema.ts +52 -0
- package/src/components/executiontasks/captureInput/CaptureText.tsx +172 -0
- package/src/components/executiontasks/captureInput/utils.ts +9 -0
- package/src/components/executiontasks/deliver/DeliverET.tsx +124 -0
- package/src/components/executiontasks/deliver/DeliverETInput.ts +50 -0
- package/src/components/executiontasks/deliver/SLDeliverET.tsx +512 -0
- package/src/components/executiontasks/display/DisplayModalET.tsx +174 -0
- package/src/components/executiontasks/display/DisplaySchema.ts +29 -0
- package/src/components/executiontasks/doodle/SignatureET.tsx +320 -0
- package/src/components/executiontasks/doodle/SignatureSchema.ts +51 -0
- package/src/components/executiontasks/dropCash/DropCashET.tsx +145 -0
- package/src/components/executiontasks/dropCash/DropCashSchema.ts +22 -0
- package/src/components/executiontasks/dropCash/SLDropCash.tsx +286 -0
- package/src/components/executiontasks/forms/FormGenerator.tsx +282 -0
- package/src/components/executiontasks/forms/FormSchema.ts +29 -0
- package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +144 -0
- package/src/components/executiontasks/forms/widgets/DropdownWidget.tsx +52 -0
- package/src/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.tsx +158 -0
- package/src/components/executiontasks/forms/widgets/TimeRangeSelector.tsx +38 -0
- package/src/components/executiontasks/httpRequest/HttpEtUtils.ts +49 -0
- package/src/components/executiontasks/httpRequest/HttpRequestET.tsx +59 -0
- package/src/components/executiontasks/httpRequest/HttpRequestETSchema.ts +42 -0
- package/src/components/executiontasks/imageCapture/CaptureSchema.ts +93 -0
- package/src/components/executiontasks/imageCapture/CaptureUtils.ts +326 -0
- package/src/components/executiontasks/imageCapture/ImageCapture.tsx +363 -0
- package/src/components/executiontasks/payments/PaymentStyles.ts +93 -0
- package/src/components/executiontasks/payments/PaymentUtils.ts +7 -0
- package/src/components/executiontasks/payments/completePayment/CompletePaymentET.tsx +237 -0
- package/src/components/executiontasks/payments/completePayment/CompletePaymentSchema.ts +23 -0
- package/src/components/executiontasks/payments/init/InitPaymentET.tsx +247 -0
- package/src/components/executiontasks/payments/init/InitPaymentSchema.ts +37 -0
- package/src/components/executiontasks/payments/processPayment/ProcessPaymentET.tsx +272 -0
- package/src/components/executiontasks/payments/processPayment/ProcessPaymentSchema.ts +38 -0
- package/src/components/executiontasks/pickup/PickpSchema.ts +28 -0
- package/src/components/executiontasks/pickup/PickupET.tsx +126 -0
- package/src/components/executiontasks/pickup/SLPickupET.tsx +367 -0
- package/src/components/executiontasks/scan/ScanET.tsx +1059 -0
- package/src/components/executiontasks/scan/ScanSchema.ts +121 -0
- package/src/components/executiontasks/scan/constants.ts +6 -0
- package/src/components/executiontasks/scan/interfaces.ts +109 -0
- package/src/components/executiontasks/scan/modalConstant.ts +120 -0
- package/src/components/executiontasks/scan/sub_components/CScanner.tsx +107 -0
- package/src/components/executiontasks/scan/sub_components/DropDownUtils.ts +119 -0
- package/src/components/executiontasks/scan/sub_components/ERDropDown.tsx +134 -0
- package/src/components/executiontasks/scan/sub_components/SummaryPage.tsx +1296 -0
- package/src/components/executiontasks/scan/utils.ts +1108 -0
- package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +436 -0
- package/src/components/executiontasks/validateOTP/ValidateOTPSchema.ts +68 -0
- package/src/components/executiontasks/validateOTP/constants.ts +24 -0
- package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +83 -0
- package/src/components/executiontasks/validateOTP/utils.ts +180 -0
- package/src/components/executiontasks/verifyInput/VerifyInputSchema.ts +49 -0
- package/src/components/executiontasks/verifyLocation/GeofenceUtils.ts +55 -0
- package/src/components/executiontasks/verifyLocation/VerifyLocSchema.ts +56 -0
- package/src/components/executiontasks/verifyLocation/VerifyLocationET.tsx +69 -0
- package/src/components/executiontasks/verifyOtp/VerifyOtpET.tsx +96 -0
- package/src/components/executiontasks/verifyOtp/VerifyOtpSchema.ts +27 -0
- package/src/components/utils/index.ts +18 -0
- package/src/components/widgets/AlertDisplay.tsx +38 -0
- package/src/components/widgets/CancelOrderDialog.tsx +112 -0
- package/src/components/widgets/Card.tsx +99 -0
- package/src/components/widgets/GoBackModal.tsx +49 -0
- package/src/components/widgets/IconButton.tsx +32 -0
- package/src/components/widgets/ModalWidget.tsx +157 -0
- package/src/components/widgets/ProgressDialog.tsx +54 -0
- package/src/components/widgets/SearchBar.tsx +71 -0
- package/src/components/widgets/SnackBarCustom.tsx +212 -0
- package/src/components/widgets/SplitTextInput.tsx +116 -0
- package/src/components/widgets/TabsComponent.tsx +84 -0
- package/src/components/widgets/Toaster.ts +8 -0
- package/src/config/DispatchSDKConfig.ts +4 -0
- package/src/constants/apiConstants.ts +11 -0
- package/src/constants/constants.ts +12 -0
- package/src/constants/statuscode.ts +8 -0
- package/src/errors/BaseError.ts +16 -0
- package/src/errors/ErrorCodes.ts +38 -0
- package/src/events/EventDispatcher.ts +22 -0
- package/src/events/EventListener.ts +14 -0
- package/src/events/constants.ts +7 -0
- package/src/events/index.ts +3 -0
- package/src/events/interface.ts +1 -0
- package/src/icons/ScanIcon.tsx +24 -0
- package/src/icons/circleMark.svg +3 -0
- package/src/icons/file.tsx +24 -0
- package/src/icons/interface.ts +5 -0
- package/src/index.tsx +80 -0
- package/src/locale/Str.ts +12 -0
- package/src/locale/en.json +6 -0
- package/src/locale/i18n.ts +17 -0
- package/src/locale/util.ts +20 -0
- package/src/manager/dispatch/DispatchStateContainer.tsx +842 -0
- package/src/manager/dispatchCodes/EventCodeContainer.ts +75 -0
- package/src/manager/dispatchCodes/EventCodeRepo.ts +82 -0
- package/src/manager/dispatchCodes/ReasonCodeContainer.ts +121 -0
- package/src/manager/dispatchCodes/ReasonCodeRepo.ts +90 -0
- package/src/manager/dispatchCodes/reasonCodes.json +137 -0
- package/src/manager/jobRemoval/JobRemovalManager.ts +21 -0
- package/src/manager/location/LocationManager.ts +77 -0
- package/src/manager/sdk/DispatchSDKManager.ts +99 -0
- package/src/manager/sdk/DispatchSdkCache.ts +47 -0
- package/src/manager/sdk/callbacksHandler.ts +25 -0
- package/src/manager/syncmanager/AppSyncManager.ts +187 -0
- package/src/manager/syncmanager/DBConfig.ts +180 -0
- package/src/manager/syncmanager/NativeSyncManager.ts +14 -0
- package/src/manager/syncmanager/constants.ts +5 -0
- package/src/manager/syncmanager/database.ts +93 -0
- package/src/manager/syncmanager/document/DocumentHttpClient.ts +111 -0
- package/src/manager/syncmanager/document/DocumentManager.ts +143 -0
- package/src/manager/syncmanager/document/DocumentSyncManager.ts +233 -0
- package/src/manager/syncmanager/document/models.ts +4 -0
- package/src/manager/syncmanager/events/ETEventsManager.ts +633 -0
- package/src/manager/syncmanager/events/EventsGraphQLClient.ts +0 -0
- package/src/manager/syncmanager/events/EventsSyncManager.ts +490 -0
- package/src/manager/syncmanager/events/SyncHttpClient.ts +202 -0
- package/src/models/DispatchModels.ts +97 -0
- package/src/models/ReasonCodes.ts +12 -0
- package/src/models/auth.ts +43 -0
- package/src/models/execTasks/ETBaseModels.ts +113 -0
- package/src/models/execTasks/ETConfig.ts +94 -0
- package/src/models/execution.ts +9 -0
- package/src/models/fcm.ts +6 -0
- package/src/models/sdk.ts +35 -0
- package/src/native/signature/SignatureCapture.tsx +110 -0
- package/src/network/GraphQLClient.ts +147 -0
- package/src/network/NetworkClient.ts +58 -0
- package/src/network/NetworkUtils.ts +41 -0
- package/src/network/Queries.ts +46 -0
- package/src/network/client.ts +61 -0
- package/src/res/strings.ts +1 -0
- package/src/resources/Login.ts +36 -0
- package/src/resources/network.ts +13 -0
- package/src/styles/SdkColors.ts +24 -0
- package/src/styles/executionTasks/CommonStyles.ts +188 -0
- package/src/ui/screens/CancellationScreen.tsx +144 -0
- package/src/ui/screens/CaptureInputScreen.tsx +79 -0
- package/src/ui/screens/CompleteObjectiveScreen.tsx +72 -0
- package/src/ui/screens/DeliverScreen.tsx +114 -0
- package/src/ui/screens/DisplayScreen.tsx +52 -0
- package/src/ui/screens/DoodleScreen.tsx +84 -0
- package/src/ui/screens/DropCashScreen.tsx +113 -0
- package/src/ui/screens/ETScreensIndex.ts +35 -0
- package/src/ui/screens/FormsScreen.tsx +164 -0
- package/src/ui/screens/GeofenceScreen.tsx +54 -0
- package/src/ui/screens/HttpRequestScreen.tsx +47 -0
- package/src/ui/screens/ImageCaptureScreen.tsx +77 -0
- package/src/ui/screens/PaymentScreen.tsx +191 -0
- package/src/ui/screens/PickupScreen.tsx +82 -0
- package/src/ui/screens/ScanScreen.tsx +159 -0
- package/src/ui/screens/StartWorkFlowScreen.tsx +233 -0
- package/src/ui/screens/ValidateOTPScreen.tsx +62 -0
- package/src/ui/screens/WithBaseDispatchScreen.tsx +33 -0
- package/src/ui/uiConfig/RouteParams.ts +28 -0
- package/src/utils/ApiUtils.ts +157 -0
- package/src/utils/ExecTaskUtils.ts +214 -0
- package/src/utils/Logger.ts +110 -0
- package/src/utils/NetworkUtil.ts +50 -0
- package/src/utils/SdkUtils.ts +155 -0
- package/src/utils/SyncManagerUtils.ts +223 -0
- package/src/utils/fcm/FCM.ts +118 -0
- package/src/utils/fcm/FcmUtils.ts +130 -0
- package/src/utils/helper.ts +24 -0
- package/src/utils/hooks/useModal.tsx +67 -0
- package/src/utils/hooks/useTimer.ts +44 -0
- package/src/utils/loginHelper.ts +51 -0
- package/src/utils/storage.ts +292 -0
- package/src/utils/test.json +17 -0
- package/src/utils/utils.ts +30 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/android/gradlew +0 -185
- package/android/gradlew.bat +0 -89
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
import { View, Text, StyleSheet, BackHandler, Platform } from 'react-native';
|
|
2
|
+
import React, { useState, useLayoutEffect } from 'react';
|
|
3
|
+
import { Button, Modal, Portal, Provider } from 'react-native-paper';
|
|
4
|
+
import { SvgXml } from 'react-native-svg';
|
|
5
|
+
import OTPInput from './sub-components/OTPInput';
|
|
6
|
+
import type { ValidateOTPInput } from './ValidateOTPSchema';
|
|
7
|
+
import useTimer from '../../../utils/hooks/useTimer';
|
|
8
|
+
import {
|
|
9
|
+
CommonStyles,
|
|
10
|
+
Fonts,
|
|
11
|
+
} from '../../../styles/executionTasks/CommonStyles';
|
|
12
|
+
import { generateOTP, parseRetryConfig } from './utils';
|
|
13
|
+
import { checkForValidation } from './utils';
|
|
14
|
+
import {
|
|
15
|
+
ERROR_GENERATING_OTP,
|
|
16
|
+
INVALID_OTP,
|
|
17
|
+
INVALID_OTP_LENGTH,
|
|
18
|
+
mobileSVG,
|
|
19
|
+
} from './constants';
|
|
20
|
+
import {
|
|
21
|
+
EntityCode,
|
|
22
|
+
ExecutionTaskID,
|
|
23
|
+
} from '../../../models/execTasks/ETConfig';
|
|
24
|
+
import { getBaseETResponse } from '../../../utils/ExecTaskUtils';
|
|
25
|
+
import { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';
|
|
26
|
+
import SnackBarCustom, {
|
|
27
|
+
SnackBarType,
|
|
28
|
+
} from '../../../components/widgets/SnackBarCustom';
|
|
29
|
+
import Icon from 'react-native-vector-icons/MaterialIcons';
|
|
30
|
+
import { GO_BACK_EVENT_CODE } from '../../../constants/constants';
|
|
31
|
+
import { hasGoBackConnector } from '../../../components/utils';
|
|
32
|
+
import GoBackModal from '../../../components/widgets/GoBackModal';
|
|
33
|
+
import { useFocusEffect } from '@react-navigation/native';
|
|
34
|
+
|
|
35
|
+
const ValidateOTPET = (props: ValidateOTPInput) => {
|
|
36
|
+
const [showBackModal, setShowBackModal] = useState(false);
|
|
37
|
+
|
|
38
|
+
// Handle back-button click
|
|
39
|
+
useFocusEffect(
|
|
40
|
+
React.useCallback(() => {
|
|
41
|
+
const onBackPress = () => {
|
|
42
|
+
if (
|
|
43
|
+
props.taskMeta?.enableGoBack &&
|
|
44
|
+
hasGoBackConnector(props.applicableReasons)
|
|
45
|
+
) {
|
|
46
|
+
setShowBackModal(true);
|
|
47
|
+
return true;
|
|
48
|
+
} else {
|
|
49
|
+
props.navigation.goBack();
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
BackHandler.addEventListener('hardwareBackPress', onBackPress);
|
|
54
|
+
return () =>
|
|
55
|
+
BackHandler.removeEventListener('hardwareBackPress', onBackPress);
|
|
56
|
+
}, [])
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
useLayoutEffect(() => {
|
|
60
|
+
props.navigation.setOptions({
|
|
61
|
+
title: props.title,
|
|
62
|
+
headerLeft: () => {
|
|
63
|
+
return (
|
|
64
|
+
<Icon
|
|
65
|
+
onPress={() => {
|
|
66
|
+
if (
|
|
67
|
+
props.taskMeta?.enableGoBack &&
|
|
68
|
+
hasGoBackConnector(props.applicableReasons)
|
|
69
|
+
)
|
|
70
|
+
setShowBackModal(true);
|
|
71
|
+
else props.navigation.goBack();
|
|
72
|
+
}}
|
|
73
|
+
name="arrow-back"
|
|
74
|
+
color={'black'}
|
|
75
|
+
size={25}
|
|
76
|
+
style={{
|
|
77
|
+
paddingRight: 15,
|
|
78
|
+
paddingTop: 5,
|
|
79
|
+
}}
|
|
80
|
+
/>
|
|
81
|
+
);
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}, [props.navigation, props.title]);
|
|
85
|
+
|
|
86
|
+
const retryConfig = parseRetryConfig(props.generationLogic?.retryConfig);
|
|
87
|
+
|
|
88
|
+
const initialMinute = Math.floor(retryConfig.delay / 60);
|
|
89
|
+
const initialSeconds = parseInt((retryConfig.delay % 60).toFixed(0));
|
|
90
|
+
const [timer, resetTimer] = useTimer({
|
|
91
|
+
initialMinute,
|
|
92
|
+
initialSeconds,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const [sendOTP, setSendOTP] = useState(
|
|
96
|
+
Boolean(props.generationLogic?.generateOnLoad)
|
|
97
|
+
);
|
|
98
|
+
const [retryCount, setRetryCount] = useState(0);
|
|
99
|
+
|
|
100
|
+
const [userInput, setUserInput] = useState({
|
|
101
|
+
captureInput: '',
|
|
102
|
+
});
|
|
103
|
+
const { captureInput: otpCode } = userInput;
|
|
104
|
+
|
|
105
|
+
const setOTPCode = (otpCode: string) => {
|
|
106
|
+
setUserInput({ ...userInput, captureInput: otpCode });
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const [hasError, setHasError] = useState(false);
|
|
110
|
+
const [errorMessage, setErrorMessage] = useState('');
|
|
111
|
+
|
|
112
|
+
const [snackBar, setSnackBar] = useState({
|
|
113
|
+
show: false,
|
|
114
|
+
type: SnackBarType.SUCCESS,
|
|
115
|
+
message: '',
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const renderButtons = () => {
|
|
119
|
+
return (
|
|
120
|
+
<View style={styles.bottomView}>
|
|
121
|
+
<View>
|
|
122
|
+
<Button
|
|
123
|
+
style={[CommonStyles.nextButton, { width: 165, marginStart: 10 }]}
|
|
124
|
+
labelStyle={CommonStyles.nextButtonLabel}
|
|
125
|
+
mode={'contained'}
|
|
126
|
+
uppercase={false}
|
|
127
|
+
onPress={async () => {
|
|
128
|
+
// send OTP Generation using props
|
|
129
|
+
if (
|
|
130
|
+
sendOTP &&
|
|
131
|
+
props.generationLogic &&
|
|
132
|
+
props.generationLogic?.generateOnLoad
|
|
133
|
+
) {
|
|
134
|
+
const response = await generateOTP(props.generationLogic.api);
|
|
135
|
+
resetTimer();
|
|
136
|
+
if (response) setSendOTP(false);
|
|
137
|
+
else
|
|
138
|
+
setSnackBar({
|
|
139
|
+
show: true,
|
|
140
|
+
message: ERROR_GENERATING_OTP,
|
|
141
|
+
type: SnackBarType.FAILURE,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
// check for Validation
|
|
145
|
+
else if (!sendOTP) {
|
|
146
|
+
if (otpCode.length < props.captureInput.length) {
|
|
147
|
+
setSnackBar({
|
|
148
|
+
show: true,
|
|
149
|
+
message: INVALID_OTP_LENGTH.replace(
|
|
150
|
+
'<length>',
|
|
151
|
+
`${props.captureInput.length}`
|
|
152
|
+
),
|
|
153
|
+
type: SnackBarType.FAILURE,
|
|
154
|
+
});
|
|
155
|
+
} else {
|
|
156
|
+
const isValid = await checkForValidation(
|
|
157
|
+
otpCode,
|
|
158
|
+
props.validation,
|
|
159
|
+
{ userInput }
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
if (!isValid) {
|
|
163
|
+
setErrorMessage(INVALID_OTP);
|
|
164
|
+
setHasError(true);
|
|
165
|
+
} else {
|
|
166
|
+
props.onSubmitET({
|
|
167
|
+
...(await getBaseETResponse(
|
|
168
|
+
EntityCode.VALIDATE_OTP_ET,
|
|
169
|
+
true,
|
|
170
|
+
getEventCodeByET(
|
|
171
|
+
ExecutionTaskID.VALIDATE_OTP_ET,
|
|
172
|
+
true,
|
|
173
|
+
props.applicableReasons?.success
|
|
174
|
+
),
|
|
175
|
+
'',
|
|
176
|
+
props.mergedObjectiveId,
|
|
177
|
+
ExecutionTaskID.VALIDATE_OTP_ET
|
|
178
|
+
)),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}}
|
|
184
|
+
>
|
|
185
|
+
Proceed
|
|
186
|
+
</Button>
|
|
187
|
+
</View>
|
|
188
|
+
<View>
|
|
189
|
+
<Button
|
|
190
|
+
style={[CommonStyles.cancelButton, { width: 165, marginEnd: 10 }]}
|
|
191
|
+
labelStyle={CommonStyles.cancelButtonLabel}
|
|
192
|
+
mode={'outlined'}
|
|
193
|
+
uppercase={false}
|
|
194
|
+
onPress={async () => {
|
|
195
|
+
// Cancel the ET
|
|
196
|
+
props.onSubmitET({
|
|
197
|
+
...(await getBaseETResponse(
|
|
198
|
+
EntityCode.VALIDATE_OTP_ET,
|
|
199
|
+
false,
|
|
200
|
+
getEventCodeByET(
|
|
201
|
+
ExecutionTaskID.VALIDATE_OTP_ET,
|
|
202
|
+
false,
|
|
203
|
+
props.applicableReasons?.failure
|
|
204
|
+
),
|
|
205
|
+
'',
|
|
206
|
+
props.mergedObjectiveId,
|
|
207
|
+
ExecutionTaskID.VALIDATE_OTP_ET
|
|
208
|
+
)),
|
|
209
|
+
});
|
|
210
|
+
}}
|
|
211
|
+
>
|
|
212
|
+
Skip
|
|
213
|
+
</Button>
|
|
214
|
+
</View>
|
|
215
|
+
</View>
|
|
216
|
+
);
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const renderRetryButton = () => {
|
|
220
|
+
const generationLogic = props.generationLogic;
|
|
221
|
+
const enableRetry = props.generationLogic?.enableRetry;
|
|
222
|
+
|
|
223
|
+
if (generationLogic && enableRetry) {
|
|
224
|
+
return (
|
|
225
|
+
<View style={styles.retryButton}>
|
|
226
|
+
<Button
|
|
227
|
+
disabled={Boolean(timer) || retryCount === retryConfig.maxAttempt}
|
|
228
|
+
uppercase={false}
|
|
229
|
+
onPress={async () => {
|
|
230
|
+
setOTPCode('');
|
|
231
|
+
setRetryCount((retryCount) => retryCount + 1);
|
|
232
|
+
await generateOTP(generationLogic.api);
|
|
233
|
+
resetTimer();
|
|
234
|
+
}}
|
|
235
|
+
>{`${retryConfig.buttonTitle} ${timer ? `in ${timer}` : ''}`}</Button>
|
|
236
|
+
</View>
|
|
237
|
+
);
|
|
238
|
+
} else return null;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
const renderErrorMessage = () => {
|
|
242
|
+
return errorMessage ? (
|
|
243
|
+
<Text style={styles.errorMessage}>{errorMessage}</Text>
|
|
244
|
+
) : null;
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
const renderModal = () => {
|
|
248
|
+
return (
|
|
249
|
+
<GoBackModal
|
|
250
|
+
showModal={showBackModal}
|
|
251
|
+
setShowModal={setShowBackModal}
|
|
252
|
+
onSuccess={async () => {
|
|
253
|
+
props.onSubmitET({
|
|
254
|
+
...(await getBaseETResponse(
|
|
255
|
+
EntityCode.VALIDATE_OTP_ET,
|
|
256
|
+
false,
|
|
257
|
+
GO_BACK_EVENT_CODE,
|
|
258
|
+
'',
|
|
259
|
+
props.mergedObjectiveId,
|
|
260
|
+
ExecutionTaskID.VALIDATE_OTP_ET
|
|
261
|
+
)),
|
|
262
|
+
});
|
|
263
|
+
setShowBackModal(false);
|
|
264
|
+
}}
|
|
265
|
+
onFailure={() => setShowBackModal(false)}
|
|
266
|
+
/>
|
|
267
|
+
);
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
if (sendOTP) {
|
|
271
|
+
return (
|
|
272
|
+
<Provider>
|
|
273
|
+
<View style={CommonStyles.mainContainer}>
|
|
274
|
+
{renderModal()}
|
|
275
|
+
<View
|
|
276
|
+
style={{
|
|
277
|
+
flex: 1,
|
|
278
|
+
justifyContent: 'center',
|
|
279
|
+
alignItems: 'center',
|
|
280
|
+
marginHorizontal: 18,
|
|
281
|
+
}}
|
|
282
|
+
>
|
|
283
|
+
<View style={{ marginBottom: 16 }}>
|
|
284
|
+
{Platform.OS === 'android' && <SvgXml xml={mobileSVG} /> }
|
|
285
|
+
</View>
|
|
286
|
+
<View style={{ marginTop: 16 }}>
|
|
287
|
+
<Text style={styles.titleText}>
|
|
288
|
+
Do you want to proceed to OTP verification? This will send a
|
|
289
|
+
verification code to your consignee.
|
|
290
|
+
</Text>
|
|
291
|
+
</View>
|
|
292
|
+
</View>
|
|
293
|
+
{renderButtons()}
|
|
294
|
+
<SnackBarCustom
|
|
295
|
+
type={snackBar.type}
|
|
296
|
+
message={`${snackBar.message}`}
|
|
297
|
+
visible={snackBar.show}
|
|
298
|
+
onDismiss={() => {
|
|
299
|
+
setSnackBar({
|
|
300
|
+
show: false,
|
|
301
|
+
message: '',
|
|
302
|
+
type: SnackBarType.SUCCESS,
|
|
303
|
+
});
|
|
304
|
+
}}
|
|
305
|
+
/>
|
|
306
|
+
</View>
|
|
307
|
+
</Provider>
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
if (!sendOTP) {
|
|
311
|
+
return (
|
|
312
|
+
<Provider>
|
|
313
|
+
<View style={CommonStyles.mainContainer}>
|
|
314
|
+
{renderModal()}
|
|
315
|
+
<View style={styles.otpContainer}>
|
|
316
|
+
<View style={styles.otpTitle}>
|
|
317
|
+
<Text>
|
|
318
|
+
Enter the {props.captureInput?.length} digit OTP sent to the
|
|
319
|
+
consignee to confirm order completion
|
|
320
|
+
</Text>
|
|
321
|
+
</View>
|
|
322
|
+
<OTPInput
|
|
323
|
+
input={props.captureInput}
|
|
324
|
+
otpCode={otpCode}
|
|
325
|
+
setOTPCode={setOTPCode}
|
|
326
|
+
hasError={hasError}
|
|
327
|
+
setHasError={setHasError}
|
|
328
|
+
setErrorMessage={setErrorMessage}
|
|
329
|
+
/>
|
|
330
|
+
{renderErrorMessage()}
|
|
331
|
+
{renderRetryButton()}
|
|
332
|
+
</View>
|
|
333
|
+
{renderButtons()}
|
|
334
|
+
<SnackBarCustom
|
|
335
|
+
type={snackBar.type}
|
|
336
|
+
message={`${snackBar.message}`}
|
|
337
|
+
visible={snackBar.show}
|
|
338
|
+
onDismiss={() => {
|
|
339
|
+
setSnackBar({
|
|
340
|
+
show: false,
|
|
341
|
+
message: '',
|
|
342
|
+
type: SnackBarType.SUCCESS,
|
|
343
|
+
});
|
|
344
|
+
}}
|
|
345
|
+
/>
|
|
346
|
+
</View>
|
|
347
|
+
</Provider>
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
return null;
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
export default ValidateOTPET;
|
|
354
|
+
|
|
355
|
+
const styles = StyleSheet.create({
|
|
356
|
+
bottomView: {
|
|
357
|
+
flexDirection: 'row-reverse',
|
|
358
|
+
justifyContent: 'space-evenly',
|
|
359
|
+
padding: 16,
|
|
360
|
+
backgroundColor: 'white',
|
|
361
|
+
},
|
|
362
|
+
titleText: {
|
|
363
|
+
justifyContent: 'center',
|
|
364
|
+
fontFamily:
|
|
365
|
+
Platform.OS === 'android'
|
|
366
|
+
? Fonts.IBMPlexSans_400Regular
|
|
367
|
+
: 'IBMPlexSans-Regular',
|
|
368
|
+
fontStyle: 'normal',
|
|
369
|
+
fontSize: 16,
|
|
370
|
+
lineHeight: 20,
|
|
371
|
+
letterSpacing: 0.25,
|
|
372
|
+
textAlign: 'center',
|
|
373
|
+
color: '#3D445C',
|
|
374
|
+
marginBottom: 10,
|
|
375
|
+
},
|
|
376
|
+
otpTitle: {
|
|
377
|
+
marginTop: 10,
|
|
378
|
+
marginBottom: 20,
|
|
379
|
+
fontFamily:
|
|
380
|
+
Platform.OS === 'android'
|
|
381
|
+
? Fonts.IBMPlexSans_400Regular
|
|
382
|
+
: 'IBMPlexSans-Regular',
|
|
383
|
+
fontStyle: 'normal',
|
|
384
|
+
fontSize: 16,
|
|
385
|
+
lineHeight: 20,
|
|
386
|
+
letterSpacing: 0.25,
|
|
387
|
+
color: '#3D445C',
|
|
388
|
+
alignItems: 'center',
|
|
389
|
+
},
|
|
390
|
+
otpContainer: {
|
|
391
|
+
marginTop: 20,
|
|
392
|
+
marginBottom: 40,
|
|
393
|
+
marginHorizontal: 10,
|
|
394
|
+
flex: 1,
|
|
395
|
+
},
|
|
396
|
+
retryButton: {
|
|
397
|
+
alignItems: 'flex-start',
|
|
398
|
+
marginVertical: 10,
|
|
399
|
+
},
|
|
400
|
+
errorMessage: {
|
|
401
|
+
marginTop: 16,
|
|
402
|
+
marginHorizontal: 10,
|
|
403
|
+
color: '#DC2626',
|
|
404
|
+
fontFamily:
|
|
405
|
+
Platform.OS === 'android'
|
|
406
|
+
? Fonts.IBMPlexSans_400Regular
|
|
407
|
+
: 'IBMPlexSans-Regular',
|
|
408
|
+
fontSize: 12,
|
|
409
|
+
lineHeight: 16,
|
|
410
|
+
},
|
|
411
|
+
subText: {
|
|
412
|
+
justifyContent: 'center',
|
|
413
|
+
fontFamily:
|
|
414
|
+
Platform.OS === 'android'
|
|
415
|
+
? Fonts.IBMPlexSans_400Regular
|
|
416
|
+
: 'IBMPlexSans-Regular',
|
|
417
|
+
fontStyle: 'normal',
|
|
418
|
+
fontSize: 14,
|
|
419
|
+
letterSpacing: 0.25,
|
|
420
|
+
lineHeight: 20,
|
|
421
|
+
textAlign: 'center',
|
|
422
|
+
color: '#000000',
|
|
423
|
+
marginBottom: 10,
|
|
424
|
+
},
|
|
425
|
+
modalContent: {
|
|
426
|
+
marginStart: 60,
|
|
427
|
+
marginEnd: 60,
|
|
428
|
+
flex: 1,
|
|
429
|
+
marginBottom: 60,
|
|
430
|
+
},
|
|
431
|
+
modalView: {
|
|
432
|
+
backgroundColor: 'white',
|
|
433
|
+
padding: 15,
|
|
434
|
+
borderRadius: 9,
|
|
435
|
+
},
|
|
436
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
HTTPRequestBody,
|
|
3
|
+
PathParams,
|
|
4
|
+
QueryParams,
|
|
5
|
+
} from '../../../utils/ApiUtils';
|
|
6
|
+
import type {
|
|
7
|
+
BaseETRequest,
|
|
8
|
+
BaseETResponse,
|
|
9
|
+
} from '../../../models/execTasks/ETBaseModels';
|
|
10
|
+
import type { Headers, HTTPMethod } from '../httpRequest/HttpRequestETSchema';
|
|
11
|
+
|
|
12
|
+
export interface API {
|
|
13
|
+
uri: string;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
httpMethod: HTTPMethod;
|
|
16
|
+
headers?: Headers[];
|
|
17
|
+
requestBody?: HTTPRequestBody;
|
|
18
|
+
queryParams?: QueryParams[];
|
|
19
|
+
pathParams?: PathParams[];
|
|
20
|
+
responseJsonLogic: object;
|
|
21
|
+
errorJsonLogic: object;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type ValidationRegex = string; // Regex to validate strings
|
|
25
|
+
|
|
26
|
+
export interface RetryConfig {
|
|
27
|
+
buttonTitle: string; // Button Title if retry is enabled
|
|
28
|
+
maxAttempt: number; // Number of attempts allowed
|
|
29
|
+
delay: number; // Delay in enabling resend again
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface GenerationLogic {
|
|
33
|
+
generateOnLoad: boolean; // Need to generate to OTP
|
|
34
|
+
enableRetry: boolean; // Need to enable retry
|
|
35
|
+
api: API; // base API to generate OTP
|
|
36
|
+
retryConfig?: RetryConfig; // Config for retry of OTP
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export enum InputType {
|
|
40
|
+
STRING = 'string',
|
|
41
|
+
NUMBER = 'number',
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface CaptureInput {
|
|
45
|
+
inputType: InputType; // Type of input to be captured
|
|
46
|
+
length: number; // Max length of OTP
|
|
47
|
+
validationRegex?: ValidationRegex; // Need to validate the input
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface Value {
|
|
51
|
+
value: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type Logic = { api: API } | { value: Value };
|
|
55
|
+
|
|
56
|
+
export interface Validation {
|
|
57
|
+
selectedIndex: number;
|
|
58
|
+
logic: Logic;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export type ValidateOTPInput = BaseETRequest & {
|
|
62
|
+
generationLogic?: GenerationLogic;
|
|
63
|
+
captureInput: CaptureInput;
|
|
64
|
+
validation: Validation;
|
|
65
|
+
onSubmitET: (validateOTPOutput: ValidateOTPOutput) => void;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export type ValidateOTPOutput = BaseETResponse;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const INVALID_OTP = `Wrong or expired OTP. Please try again.`;
|
|
2
|
+
export const INVALID_OTP_LENGTH = `OTP should be of length <length>`;
|
|
3
|
+
export const INVALID_REGEX = `Invalid OTP entered. Must match the expected pattern.`;
|
|
4
|
+
export const ERROR_GENERATING_OTP = `Error occured while Generating OTP`;
|
|
5
|
+
export const mobileSVG = `<svg width="164" height="164" viewBox="0 0 164 164" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
6
|
+
<mask id="mask0_3391_199849" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="164" height="164">
|
|
7
|
+
<rect width="164" height="164" fill="url(#pattern0)"/>
|
|
8
|
+
</mask>
|
|
9
|
+
<g mask="url(#mask0_3391_199849)">
|
|
10
|
+
<rect x="-28" y="-29" width="221" height="221" fill="#5B80F7"/>
|
|
11
|
+
</g>
|
|
12
|
+
<defs>
|
|
13
|
+
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
14
|
+
<use xlink:href="#image0_3391_199849" transform="scale(0.0078125)"/>
|
|
15
|
+
</pattern>
|
|
16
|
+
<image id="image0_3391_199849" width="128" height="128" xlink:href="data:image/png;base64,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"/>
|
|
17
|
+
</defs>
|
|
18
|
+
</svg>
|
|
19
|
+
`;
|
|
20
|
+
export const DEFAULT_RETRY_CONFIG = {
|
|
21
|
+
buttonTitle: 'Resend OTP',
|
|
22
|
+
delay: 10,
|
|
23
|
+
maxAttempt: 3,
|
|
24
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { StyleSheet, Pressable, Keyboard, Platform } from 'react-native';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
import SplitTextInput from '../../../widgets/SplitTextInput';
|
|
4
|
+
import { Fonts } from '../../../../styles/executionTasks/CommonStyles';
|
|
5
|
+
import { InputType, CaptureInput } from '../ValidateOTPSchema';
|
|
6
|
+
import { INVALID_REGEX } from '../constants';
|
|
7
|
+
|
|
8
|
+
export interface OTPInputProps {
|
|
9
|
+
input: CaptureInput;
|
|
10
|
+
otpCode: string;
|
|
11
|
+
setOTPCode: (otpCode: string) => void;
|
|
12
|
+
hasError: boolean;
|
|
13
|
+
setHasError: (hasError: boolean) => void;
|
|
14
|
+
setErrorMessage: (errorMessage: string) => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const OTPInput = (props: OTPInputProps) => {
|
|
18
|
+
const maximumCodeLength = props.input.length;
|
|
19
|
+
const keyboardType =
|
|
20
|
+
props.input.inputType === InputType.NUMBER ? 'number-pad' : 'default';
|
|
21
|
+
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (
|
|
24
|
+
props.input.validationRegex &&
|
|
25
|
+
props.otpCode.length === maximumCodeLength
|
|
26
|
+
) {
|
|
27
|
+
const regex = new RegExp(props.input.validationRegex);
|
|
28
|
+
const hasError = !regex.test(props.otpCode);
|
|
29
|
+
|
|
30
|
+
props.setHasError(hasError);
|
|
31
|
+
if (hasError) props.setErrorMessage(INVALID_REGEX);
|
|
32
|
+
else props.setErrorMessage('');
|
|
33
|
+
}
|
|
34
|
+
}, [props.otpCode]);
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<>
|
|
38
|
+
<Pressable onPress={Keyboard.dismiss}>
|
|
39
|
+
<SplitTextInput
|
|
40
|
+
styles={styles.text}
|
|
41
|
+
value={props.otpCode}
|
|
42
|
+
onChange={(text) => {
|
|
43
|
+
if (props.input.validationRegex) {
|
|
44
|
+
}
|
|
45
|
+
if (props.hasError) {
|
|
46
|
+
props.setErrorMessage('');
|
|
47
|
+
props.setHasError(false);
|
|
48
|
+
}
|
|
49
|
+
props.setOTPCode(text);
|
|
50
|
+
}}
|
|
51
|
+
maxLength={maximumCodeLength}
|
|
52
|
+
keyboardType={keyboardType}
|
|
53
|
+
hasError={props.hasError}
|
|
54
|
+
/>
|
|
55
|
+
</Pressable>
|
|
56
|
+
</>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default OTPInput;
|
|
61
|
+
|
|
62
|
+
const styles = StyleSheet.create({
|
|
63
|
+
text: {
|
|
64
|
+
fontFamily:
|
|
65
|
+
Platform.OS === 'android'
|
|
66
|
+
? Fonts.IBMPlexSans_400Regular
|
|
67
|
+
: 'IBMPlexSans-Regular',
|
|
68
|
+
color: '#3D445C',
|
|
69
|
+
fontSize: 20,
|
|
70
|
+
textAlign: 'center',
|
|
71
|
+
},
|
|
72
|
+
errorMessage: {
|
|
73
|
+
marginTop: 16,
|
|
74
|
+
marginHorizontal: 10,
|
|
75
|
+
color: '#DC2626',
|
|
76
|
+
fontFamily:
|
|
77
|
+
Platform.OS === 'android'
|
|
78
|
+
? Fonts.IBMPlexSans_400Regular
|
|
79
|
+
: 'IBMPlexSans-Regular',
|
|
80
|
+
fontSize: 12,
|
|
81
|
+
lineHeight: 16,
|
|
82
|
+
},
|
|
83
|
+
});
|