import {useFocusEffect} from '@react-navigation/native'; import React, {Fragment, useEffect, useState} from 'react'; import {useTranslation} from 'react-i18next'; import {BackHandler, Dimensions, View} from 'react-native'; import {ButtonProps as RNEButtonProps} from 'react-native-elements'; import {Button, Column, Row, Text} from '.'; import {Header} from './Header'; import {Theme} from './styleUtils'; import testIDProps from '../../shared/commonUtil'; import {Modal} from './Modal'; import {isIOS} from '../../shared/constants'; export const Error: React.FC = props => { const {t} = useTranslation('common'); const { testID, customStyles = {}, customImageStyles = {}, goBackType, isModal = false, isVisible, showClose = true, alignActionsOnEnd = false, title, message, additionalMessage, helpText, image, goBack, goBackButtonVisible = false, tryAgain, onDismiss, primaryButtonText, primaryButtonEvent, testIDTextButton, textButtonText, textButtonEvent, primaryButtonTestID, textButtonTestID, } = props; const [triggerExitFlow, setTriggerExitFlow] = useState(false); useEffect(() => { if (props.exitAppWithTimer) { const timeout = setTimeout( () => { setTriggerExitFlow(true); }, isIOS() ? 4000 : 2000, ); return () => clearTimeout(timeout); } }, [props.exitAppWithTimer]); useEffect(() => { if (triggerExitFlow) { props.textButtonEvent(); BackHandler.exitApp(); } }, [triggerExitFlow]); const errorContent = () => { return ( {image} {title} {message} {additionalMessage && ( {additionalMessage} )} {!alignActionsOnEnd && ( {primaryButtonText && (