diff --git a/src/pages/signin/SAMLSignInPage/index.native.tsx b/src/pages/signin/SAMLSignInPage/index.native.tsx index 9260cf34a249..4e4d44599206 100644 --- a/src/pages/signin/SAMLSignInPage/index.native.tsx +++ b/src/pages/signin/SAMLSignInPage/index.native.tsx @@ -25,6 +25,13 @@ function SAMLSignInPage() { const {translate} = useLocalize(); const hasOpenedAuthSession = useRef(false); + const handleExitSAMLFlow = useCallback(() => { + clearSignInData(); + Navigation.isNavigationReady().then(() => { + Navigation.goBack(); + }); + }, []); + /** * Handles in-app navigation once we get a response back from Expensify */ @@ -80,16 +87,16 @@ function SAMLSignInPage() { openAuthSessionAsync(SAMLUrl, CONST.SAML_REDIRECT_URL) .then((response: WebBrowserAuthSessionResult) => { if (response.type !== 'success') { - Navigation.goBack(); + handleExitSAMLFlow(); return; } handleNavigationStateChange(response.url); }) .catch((error) => { Log.hmmm('SAML sign in failed', {error}); - Navigation.goBack(); + handleExitSAMLFlow(); }); - }, [SAMLUrl, handleNavigationStateChange]); + }, [SAMLUrl, handleNavigationStateChange, handleExitSAMLFlow]); useEffect(() => { // If we don't have a valid login to pass here, direct the user back to a clean sign in state to try again @@ -130,12 +137,7 @@ function SAMLSignInPage() { {showNavigation && ( { - clearSignInData(); - Navigation.isNavigationReady().then(() => { - Navigation.goBack(); - }); - }} + onBackButtonPress={handleExitSAMLFlow} /> )}