@@ -25,6 +25,13 @@ function SAMLSignInPage() {
2525 const { translate} = useLocalize ( ) ;
2626 const hasOpenedAuthSession = useRef ( false ) ;
2727
28+ const handleExitSAMLFlow = useCallback ( ( ) => {
29+ clearSignInData ( ) ;
30+ Navigation . isNavigationReady ( ) . then ( ( ) => {
31+ Navigation . goBack ( ) ;
32+ } ) ;
33+ } , [ ] ) ;
34+
2835 /**
2936 * Handles in-app navigation once we get a response back from Expensify
3037 */
@@ -80,16 +87,16 @@ function SAMLSignInPage() {
8087 openAuthSessionAsync ( SAMLUrl , CONST . SAML_REDIRECT_URL )
8188 . then ( ( response : WebBrowserAuthSessionResult ) => {
8289 if ( response . type !== 'success' ) {
83- Navigation . goBack ( ) ;
90+ handleExitSAMLFlow ( ) ;
8491 return ;
8592 }
8693 handleNavigationStateChange ( response . url ) ;
8794 } )
8895 . catch ( ( error ) => {
8996 Log . hmmm ( 'SAML sign in failed' , { error} ) ;
90- Navigation . goBack ( ) ;
97+ handleExitSAMLFlow ( ) ;
9198 } ) ;
92- } , [ SAMLUrl , handleNavigationStateChange ] ) ;
99+ } , [ SAMLUrl , handleNavigationStateChange , handleExitSAMLFlow ] ) ;
93100
94101 useEffect ( ( ) => {
95102 // 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() {
130137 { showNavigation && (
131138 < HeaderWithBackButton
132139 title = ""
133- onBackButtonPress = { ( ) => {
134- clearSignInData ( ) ;
135- Navigation . isNavigationReady ( ) . then ( ( ) => {
136- Navigation . goBack ( ) ;
137- } ) ;
138- } }
140+ onBackButtonPress = { handleExitSAMLFlow }
139141 />
140142 ) }
141143 < FullPageOfflineBlockingView >
0 commit comments