@@ -11,15 +11,14 @@ import { Address, isAddress } from 'viem';
1111import invariant from 'tiny-invariant' ;
1212import { useSingleVaultData } from 'modules/vaults/hooks/use-vault-data' ;
1313import { VaultInfo } from 'types' ;
14+ import { QueryObserverResult } from '@tanstack/react-query' ;
1415
1516type VaultContextType = {
1617 vaultAddress : Address | undefined ;
1718 activeVault ?: VaultInfo ;
18- isLoadingVault ?: boolean ;
19- } & Pick <
20- ReturnType < typeof useSingleVaultData > ,
21- 'refetch' | 'isRefetching' | 'error'
22- > ;
19+ refetchVaultInfo : ( ) => Promise < QueryObserverResult < VaultInfo , Error > > ;
20+ isLoadingVault : boolean ;
21+ } & Pick < ReturnType < typeof useSingleVaultData > , 'isRefetching' | 'error' > ;
2322
2423const VaultContext = createContext < VaultContextType | null > ( null ) ;
2524VaultContext . displayName = 'VaultContext' ;
@@ -30,34 +29,26 @@ export const VaultProvider: FC<PropsWithChildren> = ({ children }) => {
3029 const sanitizedVaultAddress = isAddress ( vaultAddress )
3130 ? vaultAddress
3231 : undefined ;
33- const query = useSingleVaultData ( sanitizedVaultAddress ) ;
32+ const { data, error, refetch, isPending, isRefetching } = useSingleVaultData (
33+ sanitizedVaultAddress ,
34+ ) ;
3435
3536 useEffect ( ( ) => {
36- if ( query . error )
37- console . error (
38- `[VaultProvider] error fetching ${ vaultAddress } ` ,
39- query . error ,
40- ) ;
41- } , [ query . error , vaultAddress ] ) ;
37+ if ( error )
38+ console . error ( `[VaultProvider] error fetching ${ vaultAddress } ` , error ) ;
39+ } , [ error , vaultAddress ] ) ;
4240
43- const contextValue = useMemo < VaultContextType > (
44- ( ) => ( {
41+ const contextValue = useMemo < VaultContextType > ( ( ) => {
42+ return {
4543 vaultAddress : sanitizedVaultAddress ,
46- activeVault : query . data ,
47- isLoadingVault : query . isPending ,
48- error : query . error ,
49- refetch : query . refetch ,
50- isRefetching : query . isRefetching ,
51- } ) ,
52- [
53- sanitizedVaultAddress ,
54- query . data ,
55- query . isPending ,
56- query . error ,
57- query . refetch ,
58- query . isRefetching ,
59- ] ,
60- ) ;
44+ activeVault : data ,
45+ isLoadingVault : isPending ,
46+ error : error ,
47+ refetchVaultInfo : ( ) =>
48+ refetch ( { cancelRefetch : true , throwOnError : false } ) ,
49+ isRefetching : isRefetching ,
50+ } ;
51+ } , [ sanitizedVaultAddress , data , isPending , error , isRefetching , refetch ] ) ;
6152
6253 return (
6354 < VaultContext . Provider value = { contextValue } >
0 commit comments