Skip to content

Commit 0eef9a1

Browse files
authored
better logic for initial balance check (#562)
1 parent f2234a2 commit 0eef9a1

File tree

1 file changed

+34
-4
lines changed

1 file changed

+34
-4
lines changed

packages/checkout/src/views/Checkout/PaymentMethodSelect/PayWithCrypto/useInitialBalanceCheck.tsx

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ export const useInitialBalanceCheck = ({
3030

3131
const isInitialBalanceChecked = (navigation.params as PaymentMethodSelectionParams).isInitialBalanceChecked
3232

33-
const { data: swapRoutes = [], isLoading: swapRoutesIsLoading } = useGetSwapRoutes(
33+
const {
34+
data: swapRoutes = [],
35+
isLoading: swapRoutesIsLoading,
36+
isError: isErrorSwapRoutes
37+
} = useGetSwapRoutes(
3438
{
3539
walletAddress: userAddress ?? '',
3640
toTokenAddress: buyCurrencyAddress,
@@ -42,7 +46,11 @@ export const useInitialBalanceCheck = ({
4246
}
4347
)
4448

45-
const { data: swapRoutesTokenBalancesData, isLoading: swapRoutesTokenBalancesIsLoading } = useGetTokenBalancesSummary(
49+
const {
50+
data: swapRoutesTokenBalancesData,
51+
isLoading: swapRoutesTokenBalancesIsLoading,
52+
isError: isErrorSwapRoutesTokenBalances
53+
} = useGetTokenBalancesSummary(
4654
{
4755
chainIds: [chainId],
4856
filter: {
@@ -80,6 +88,18 @@ export const useInitialBalanceCheck = ({
8088
}
8189
}
8290

91+
if (!validSwapRoute) {
92+
setNavigation({
93+
location: 'payment-method-selection',
94+
params: {
95+
...navigation.params,
96+
isInitialBalanceChecked: true
97+
}
98+
})
99+
100+
return
101+
}
102+
83103
setNavigation({
84104
location: 'payment-method-selection',
85105
params: {
@@ -95,7 +115,15 @@ export const useInitialBalanceCheck = ({
95115

96116
useEffect(() => {
97117
if (!isInitialBalanceChecked && !tokenBalancesIsLoading && !swapRoutesIsLoading && !swapRoutesTokenBalancesIsLoading) {
98-
if (isInsufficientBalance) {
118+
if (isErrorSwapRoutes || isErrorSwapRoutesTokenBalances) {
119+
setNavigation({
120+
location: 'payment-method-selection',
121+
params: {
122+
...navigation.params,
123+
isInitialBalanceChecked: true
124+
}
125+
})
126+
} else if (isInsufficientBalance) {
99127
findSwapQuote()
100128
} else {
101129
setNavigation({
@@ -112,6 +140,8 @@ export const useInitialBalanceCheck = ({
112140
isInsufficientBalance,
113141
tokenBalancesIsLoading,
114142
swapRoutesIsLoading,
115-
swapRoutesTokenBalancesIsLoading
143+
swapRoutesTokenBalancesIsLoading,
144+
isErrorSwapRoutes,
145+
isErrorSwapRoutesTokenBalances
116146
])
117147
}

0 commit comments

Comments
 (0)