@@ -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 }
0 commit comments