Skip to content

Commit a1d0f2a

Browse files
committed
fixes
1 parent b32ed79 commit a1d0f2a

File tree

3 files changed

+89
-63
lines changed

3 files changed

+89
-63
lines changed

src/components/transactions/Switch/CollateralSwapModal.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
import { TokenInfoWithBalance } from 'src/hooks/generic/useTokensBalance';
88
import { ModalContextType, ModalType, useModalContext } from 'src/hooks/useModal';
99
import { useRootStore } from 'src/store/root';
10-
import { TokenInfo } from 'src/ui-config/TokenList';
10+
import { TOKEN_LIST, TokenInfo } from 'src/ui-config/TokenList';
1111

1212
import { BaseSwitchModal } from './BaseSwitchModal';
1313
import { SwitchDetailsParams as SwitchDetailsParams } from './BaseSwitchModalContent';
@@ -76,7 +76,9 @@ export const CollateralSwapModal = () => {
7676
const isWrappedNative =
7777
wrappedNative && position.reserve.underlyingAsset.toLowerCase() === wrappedNative;
7878
const nativeToken = isWrappedNative
79-
? baseTokens.find((t) => (t as TokenInfoWithBalance).extensions?.isNative)
79+
? TOKEN_LIST.tokens.find(
80+
(t) => (t as TokenInfoWithBalance).extensions?.isNative && t.chainId === realChainId
81+
)
8082
: undefined;
8183

8284
return {

src/components/transactions/Switch/SwitchActions.tsx

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ export const ParaswapSwitchActionsWrapper = ({
104104
isMaxSelected,
105105
addTransaction,
106106
setMainTxState,
107+
invalidate,
107108
}: {
108109
inputAmount: string;
109110
inputSymbol: string;
@@ -122,6 +123,7 @@ export const ParaswapSwitchActionsWrapper = ({
122123
context?: TransactionContext
123124
) => void;
124125
setMainTxState: (txState: TxStateType) => void;
126+
invalidate: () => void;
125127
}) => {
126128
const userAddress = useRootStore.getState().account;
127129
const [swapCollateral, currentMarketData, trackEvent] = useRootStore(
@@ -220,21 +222,7 @@ export const ParaswapSwitchActionsWrapper = ({
220222

221223
useEffect(() => {
222224
if (mainTxState.success) {
223-
addTransaction(
224-
mainTxState.txHash || '',
225-
{
226-
txState: 'success',
227-
},
228-
{
229-
chainId,
230-
}
231-
);
232-
233-
setMainTxState({
234-
txHash: mainTxState.txHash || '',
235-
loading: false,
236-
success: true,
237-
});
225+
invalidate();
238226

239227
trackEvent(GENERAL.COLLATERAL_SWAP_WITH_FLASHLOAN, {
240228
chainId,
@@ -253,6 +241,22 @@ export const ParaswapSwitchActionsWrapper = ({
253241
txHash: mainTxState.txHash,
254242
status: 'success',
255243
});
244+
245+
addTransaction(
246+
mainTxState.txHash || '',
247+
{
248+
txState: 'success',
249+
},
250+
{
251+
chainId,
252+
}
253+
);
254+
255+
setMainTxState({
256+
txHash: mainTxState.txHash || '',
257+
loading: false,
258+
success: true,
259+
});
256260
}
257261
}, [mainTxState.success]);
258262

@@ -391,6 +395,40 @@ export const SwitchActions = ({
391395
}
392396
}, [inputSymbol, chainId, approvedAmount, inputAmount, setShowUSDTResetWarning, switchRates]);
393397

398+
const invalidate = () => {
399+
queryClient.invalidateQueries({
400+
queryKey: queryKeysFactory.poolTokens(user, findByChainId(chainId) ?? currentMarketData),
401+
});
402+
403+
queryClient.invalidateQueries({
404+
queryKey: queryKeysFactory.transactionHistory(
405+
user,
406+
findByChainId(chainId) ?? currentMarketData
407+
),
408+
});
409+
410+
// Refresh dashboard data after collateral swap
411+
queryClient.invalidateQueries({
412+
queryKey: queryKeysFactory.poolReservesDataHumanized(
413+
findByChainId(chainId) ?? currentMarketData
414+
),
415+
});
416+
417+
queryClient.invalidateQueries({
418+
queryKey: queryKeysFactory.userPoolReservesDataHumanized(
419+
user,
420+
findByChainId(chainId) ?? currentMarketData
421+
),
422+
});
423+
424+
queryClient.invalidateQueries({
425+
queryKey: queryKeysFactory.userPoolReservesIncentiveDataHumanized(
426+
user,
427+
findByChainId(chainId) ?? currentMarketData
428+
),
429+
});
430+
};
431+
394432
const action = async () => {
395433
setMainTxState({ ...mainTxState, loading: true });
396434
if (isParaswapRates(switchRates)) {
@@ -773,38 +811,7 @@ export const SwitchActions = ({
773811
console.error('Error tracking swap event:', error);
774812
}
775813

776-
// Invalidate the pool tokens query to refresh the data
777-
queryClient.invalidateQueries({
778-
queryKey: queryKeysFactory.poolTokens(user, findByChainId(chainId) ?? currentMarketData),
779-
});
780-
781-
queryClient.invalidateQueries({
782-
queryKey: queryKeysFactory.transactionHistory(
783-
user,
784-
findByChainId(chainId) ?? currentMarketData
785-
),
786-
});
787-
788-
// Refresh dashboard data after collateral swap
789-
queryClient.invalidateQueries({
790-
queryKey: queryKeysFactory.poolReservesDataHumanized(
791-
findByChainId(chainId) ?? currentMarketData
792-
),
793-
});
794-
795-
queryClient.invalidateQueries({
796-
queryKey: queryKeysFactory.userPoolReservesDataHumanized(
797-
user,
798-
findByChainId(chainId) ?? currentMarketData
799-
),
800-
});
801-
802-
queryClient.invalidateQueries({
803-
queryKey: queryKeysFactory.userPoolReservesIncentiveDataHumanized(
804-
user,
805-
findByChainId(chainId) ?? currentMarketData
806-
),
807-
});
814+
invalidate();
808815
};
809816

810817
const approval = async () => {
@@ -1098,6 +1105,7 @@ export const SwitchActions = ({
10981105
isMaxSelected={isMaxSelected}
10991106
addTransaction={addTransaction}
11001107
setMainTxState={setMainTxState}
1108+
invalidate={invalidate}
11011109
/>
11021110
);
11031111
}

src/modules/dashboard/lists/SuppliedPositionsList/SuppliedPositionsList.tsx

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,27 @@ export const SuppliedPositionsList = () => {
7575
localStorage.getItem(localStorageName) === 'true'
7676
);
7777

78+
const userHasSmallBalanceAssets = useMemo(() => {
79+
return user?.userReservesData.some((userReserve) => {
80+
if (userReserve.underlyingBalance === '0') return false;
81+
82+
const balanceUSD = amountToUsd(
83+
userReserve.underlyingBalance,
84+
userReserve.reserve.formattedPriceInMarketReferenceCurrency,
85+
marketReferencePriceInUsd
86+
);
87+
88+
return Number(balanceUSD) <= SMALL_BALANCE_THRESHOLD;
89+
});
90+
}, [user?.userReservesData, marketReferencePriceInUsd]);
91+
7892
const suppliedPositions = useMemo(() => {
7993
return (
8094
user?.userReservesData
8195
.filter((userReserve) => {
8296
if (userReserve.underlyingBalance === '0') return false;
8397

84-
if (isShowSmallBalanceAssets) return true;
98+
if (!!isShowSmallBalanceAssets) return true;
8599

86100
// Filter out dust amounts < $0.01 USD
87101
const balanceUSD = amountToUsd(
@@ -105,7 +119,7 @@ export const SuppliedPositionsList = () => {
105119
},
106120
})) || []
107121
);
108-
}, [isShowSmallBalanceAssets]);
122+
}, [isShowSmallBalanceAssets, user?.userReservesData, marketReferencePriceInUsd]);
109123

110124
// Transform to the DashboardReserve schema so the sort utils can work with it
111125
const preSortedReserves = suppliedPositions as DashboardReserve[];
@@ -156,18 +170,20 @@ export const SuppliedPositionsList = () => {
156170
localStorageName="suppliedAssetsDashboardTableCollapse"
157171
noData={!sortedReserves.length}
158172
subChildrenComponent={
159-
<Box>
160-
<DashboardListTopPanel
161-
value={isShowSmallBalanceAssets}
162-
onClick={setIsShowSmallBalanceAssets}
163-
localStorageName={localStorageName}
164-
bridge={currentNetworkConfig.bridge}
165-
eventName={DASHBOARD.SHOW_ASSETS_SMALL_BALANCE}
166-
label={<Trans>Show assets with small balance</Trans>}
167-
showFaucet={false}
168-
showBridge={false}
169-
/>
170-
</Box>
173+
!!userHasSmallBalanceAssets && (
174+
<Box>
175+
<DashboardListTopPanel
176+
value={isShowSmallBalanceAssets}
177+
onClick={setIsShowSmallBalanceAssets}
178+
localStorageName={localStorageName}
179+
bridge={currentNetworkConfig.bridge}
180+
eventName={DASHBOARD.SHOW_ASSETS_SMALL_BALANCE}
181+
label={<Trans>Show assets with small balance</Trans>}
182+
showFaucet={false}
183+
showBridge={false}
184+
/>
185+
</Box>
186+
)
171187
}
172188
topInfo={
173189
<>

0 commit comments

Comments
 (0)