Skip to content

Commit 7d49ff1

Browse files
authored
Merge pull request Expensify#85717 from fedirjh/fix-spinner-assign-card
Fix : Assign new cards - Assign new cards tab with infinite spinner
2 parents 8176a9c + 2dc15c0 commit 7d49ff1

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

src/pages/workspace/companyCards/BankConnection/useBankConnection.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {useCallback, useEffect, useMemo, useRef} from 'react';
1+
import {useCallback, useEffect, useMemo, useRef, useState} from 'react';
22
import useCardFeeds from '@hooks/useCardFeeds';
33
import useImportPlaidAccounts from '@hooks/useImportPlaidAccounts';
44
import 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

Comments
 (0)