TP-69407 | Added back press safety (#833)
This commit is contained in:
@@ -134,8 +134,8 @@ def reactNativeArchitectures() {
|
||||
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
||||
}
|
||||
|
||||
def VERSION_CODE = 165
|
||||
def VERSION_NAME = "2.10.11"
|
||||
def VERSION_CODE = 166
|
||||
def VERSION_NAME = "2.11.0"
|
||||
|
||||
android {
|
||||
ndkVersion rootProject.ext.ndkVersion
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "AV_APP",
|
||||
"version": "2.10.11",
|
||||
"buildNumber": "165",
|
||||
"version": "2.11.0",
|
||||
"buildNumber": "166",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"android:dev": "yarn move:dev && react-native run-android",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import React, {useCallback, useEffect, useRef, useState} from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { ScrollView, StyleSheet, View } from 'react-native';
|
||||
import Geolocation from 'react-native-geolocation-service';
|
||||
@@ -41,6 +41,7 @@ import NavigationHeader, { Icon } from '../../../RN-UI-LIB/src/components/Naviga
|
||||
import { CaseDetailStackEnum } from '@screens/caseDetails/CaseDetailStack';
|
||||
import { useNavigation, useRoute } from '@react-navigation/native';
|
||||
import { NUDGE_BOTTOM_SHEET_DEFAULT_STATE } from './constants';
|
||||
import {useBackHandler} from "@hooks/useBackHandler";
|
||||
|
||||
interface IWidget {
|
||||
route: {
|
||||
@@ -93,6 +94,20 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
setIsJourneyFirstScreen(isFirst);
|
||||
}, [templateData, name]);
|
||||
|
||||
const handleBackPress = useCallback(() => {
|
||||
if (isSubmitting) {
|
||||
toast({
|
||||
type: 'info',
|
||||
text1: ToastMessages.FEEDBACK_SUBMISSION_UNDER_PROCESS,
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}, [isSubmitting]);
|
||||
|
||||
useBackHandler(handleBackPress);
|
||||
|
||||
const {
|
||||
control,
|
||||
setValue,
|
||||
@@ -220,6 +235,7 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
}
|
||||
|
||||
const submitJourneyWithGeoLocation = (data: any, _: any, submitViaNudge?: boolean) => {
|
||||
setIsSubmitting(true);
|
||||
addClickstreamEvent(
|
||||
submitViaNudge
|
||||
? CLICKSTREAM_EVENT_NAMES.FA_SUBMIT_ANYWAYS_CLICKED
|
||||
@@ -234,6 +250,8 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
if (location) {
|
||||
return handleSubmitJourney(data, location);
|
||||
}
|
||||
}).catch((err) => {
|
||||
setIsSubmitting(false);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -273,7 +291,6 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
templateData,
|
||||
});
|
||||
if (isOnline) {
|
||||
setIsSubmitting(true);
|
||||
const unSyncedCase = getUnSyncedCase(updatedCase);
|
||||
const transformedPayload = await getTransformedCollectionCaseItem(
|
||||
unSyncedCase,
|
||||
@@ -310,6 +327,7 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
type: 'info',
|
||||
text1: ToastMessages.FEEDBACK_SUBMITTED_OFFLINE,
|
||||
});
|
||||
setIsSubmitting(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -329,6 +347,14 @@ const Widget: React.FC<IWidget> = (props) => {
|
||||
}, []);
|
||||
|
||||
const handleCloseIconPress = () => {
|
||||
if (isSubmitting) {
|
||||
toast({
|
||||
type: 'info',
|
||||
text1: ToastMessages.FEEDBACK_SUBMISSION_UNDER_PROCESS,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_FORM_CLOSE_CLICKED, {
|
||||
caseId,
|
||||
});
|
||||
|
||||
10
src/hooks/useBackHandler.tsx
Normal file
10
src/hooks/useBackHandler.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { useEffect } from 'react'
|
||||
import { BackHandler } from 'react-native'
|
||||
|
||||
export const useBackHandler = (handler: () => boolean) => {
|
||||
useEffect(() => {
|
||||
BackHandler.addEventListener('hardwareBackPress', handler)
|
||||
|
||||
return () => BackHandler.removeEventListener('hardwareBackPress', handler)
|
||||
}, [handler])
|
||||
}
|
||||
@@ -70,6 +70,7 @@ export const ToastMessages = {
|
||||
SUCCESS_COPYING_PAYMENT_LINK: 'Payment link has been copied to Clipboard',
|
||||
FILTERS_APPLIED_SUCCESSFULLY: 'Filters applied successfully',
|
||||
FEEDBACK_SUBMITTED_OFFLINE: "Feedback will be submitted automatically once you're back online",
|
||||
FEEDBACK_SUBMISSION_UNDER_PROCESS: "Submitting feedback. You'll be redirected to customer details shortly.",
|
||||
OFFLINE_MESSAGE: 'You seem to be offline',
|
||||
PAYMENT_LINK_NOT_GENERATED: 'Payment link could not be generated',
|
||||
PAYMENT_LINK_RETRY: 'Please retry after an hour for this number',
|
||||
|
||||
Reference in New Issue
Block a user