1- import { useCallback , useEffect , useMemo , useRef } from 'react' ;
1+ import { useCallback , useEffect , useMemo , useRef , useState } from 'react' ;
22import useCardFeeds from '@hooks/useCardFeeds' ;
33import useImportPlaidAccounts from '@hooks/useImportPlaidAccounts' ;
44import useIsBlockedToAddFeed from '@hooks/useIsBlockedToAddFeed' ;
@@ -51,7 +51,7 @@ export default function useBankConnection({
5151 const { isBlockedToAddNewFeeds, isAllFeedsResultLoading} = useIsBlockedToAddFeed ( policyID ) ;
5252 const { isFeedConnectionBroken} = useUpdateFeedBrokenConnection ( { policyID, feed} ) ;
5353 const shouldBlockWindowOpen = useRef ( false ) ;
54- const refreshSuccessHandled = useRef ( false ) ;
54+ const [ refreshSuccessHandled , setRefreshSuccessHandled ] = useState ( false ) ;
5555
5656 const addNewCardData = addNewCard ?. data ;
5757 const bankName = feed ? getBankName ( getCompanyCardFeed ( feed ) ) : ( bankNameFromRoute ?? addNewCardData ?. plaidConnectedFeed ?? addNewCardData ?. selectedBank ) ;
@@ -73,8 +73,8 @@ export default function useBankConnection({
7373 if ( ! isRefreshConnectionFlow || ! feed || ! hasConnectionSource || shouldWaitForData ) {
7474 return false ;
7575 }
76- return ! ! prevIsFeedExpired && ! isFeedExpired && ! isFeedConnectionBroken ;
77- } , [ isRefreshConnectionFlow , feed , hasConnectionSource , shouldWaitForData , prevIsFeedExpired , isFeedExpired , isFeedConnectionBroken ] ) ;
76+ return ! isFeedExpired && ! isFeedConnectionBroken && ( ! ! prevIsFeedExpired || refreshSuccessHandled ) ;
77+ } , [ isRefreshConnectionFlow , feed , hasConnectionSource , shouldWaitForData , prevIsFeedExpired , isFeedExpired , isFeedConnectionBroken , refreshSuccessHandled ] ) ;
7878
7979 const fallbackNavigation = useCallback ( ( ) => {
8080 Navigation . goBack ( policyID ? ROUTES . WORKSPACE_COMPANY_CARDS . getRoute ( policyID ) : undefined ) ;
@@ -114,12 +114,12 @@ export default function useBankConnection({
114114 } , [ shouldOpenWindow , onBackButtonPress ] ) ;
115115
116116 useEffect ( ( ) => {
117- if ( ! isRefreshComplete || refreshSuccessHandled . current ) {
117+ if ( ! isRefreshComplete || refreshSuccessHandled ) {
118118 return ;
119119 }
120- refreshSuccessHandled . current = true ;
120+ setRefreshSuccessHandled ( true ) ;
121121 onSuccess ?.( ) ;
122- } , [ isRefreshComplete , onSuccess ] ) ;
122+ } , [ isRefreshComplete , onSuccess , refreshSuccessHandled ] ) ;
123123
124124 useEffect ( ( ) => {
125125 if ( ! policyID || ! isBlockedToAddNewFeeds || feed ) {
@@ -147,6 +147,11 @@ export default function useBankConnection({
147147 }
148148 if ( ! isRefreshConnectionFlow ) {
149149 handleSuccess ( ) ;
150+ return ;
151+ }
152+
153+ if ( ! refreshSuccessHandled ) {
154+ setRefreshSuccessHandled ( true ) ;
150155 }
151156 return ;
152157 }
@@ -191,6 +196,7 @@ export default function useBankConnection({
191196 handleFailure ,
192197 shouldOpenWindow ,
193198 isRefreshConnectionFlow ,
199+ refreshSuccessHandled ,
194200 ] ) ;
195201
196202 return {
0 commit comments