1
1
import React , { useMemo , createContext , useContext , useState , useCallback , useEffect } from "react" ;
2
2
3
- import { useQuery } from "@tanstack/react-query" ;
3
+ import { useQuery , useQueryClient } from "@tanstack/react-query" ;
4
4
import { GraphQLClient } from "graphql-request" ;
5
5
import { decodeJwt } from "jose" ;
6
6
import { useAccount , useChainId , useSignMessage } from "wagmi" ;
@@ -43,6 +43,7 @@ if (!atlasUri) {
43
43
const AtlasProvider : React . FC < { children ?: React . ReactNode } > = ( { children } ) => {
44
44
const { address } = useAccount ( ) ;
45
45
const chainId = useChainId ( ) ;
46
+ const queryClient = useQueryClient ( ) ;
46
47
const [ authToken , setAuthToken ] = useSessionStorage < string | undefined > ( "authToken" , undefined ) ;
47
48
const [ isSigningIn , setIsSigningIn ] = useState ( false ) ;
48
49
const [ isAddingUser , setIsAddingUser ] = useState ( false ) ;
@@ -99,7 +100,6 @@ const AtlasProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) =
99
100
} = useQuery ( {
100
101
queryKey : [ `UserSettings` ] ,
101
102
enabled : isVerified && ! isUndefined ( address ) ,
102
- staleTime : Infinity ,
103
103
queryFn : async ( ) => {
104
104
try {
105
105
if ( ! isVerified || isUndefined ( address ) ) return undefined ;
@@ -115,6 +115,11 @@ const AtlasProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) =
115
115
refetchUser ( ) ;
116
116
} , [ isVerified , refetchUser ] ) ;
117
117
118
+ // remove old user's data on address change
119
+ useEffect ( ( ) => {
120
+ queryClient . removeQueries ( { queryKey : [ "UserSettings" ] } ) ;
121
+ } , [ address , queryClient ] ) ;
122
+
118
123
// this would change based on the fields we have and what defines a user to be existing
119
124
const userExists = useMemo ( ( ) => {
120
125
if ( ! user ) return false ;
0 commit comments