11import React , { useMemo , createContext , useContext , useState , useCallback , useEffect } from "react" ;
22
3- import { useQuery } from "@tanstack/react-query" ;
3+ import { useQuery , useQueryClient } from "@tanstack/react-query" ;
44import { GraphQLClient } from "graphql-request" ;
55import { decodeJwt } from "jose" ;
66import { useAccount , useChainId , useSignMessage } from "wagmi" ;
@@ -43,6 +43,7 @@ if (!atlasUri) {
4343const AtlasProvider : React . FC < { children ?: React . ReactNode } > = ( { children } ) => {
4444 const { address } = useAccount ( ) ;
4545 const chainId = useChainId ( ) ;
46+ const queryClient = useQueryClient ( ) ;
4647 const [ authToken , setAuthToken ] = useSessionStorage < string | undefined > ( "authToken" , undefined ) ;
4748 const [ isSigningIn , setIsSigningIn ] = useState ( false ) ;
4849 const [ isAddingUser , setIsAddingUser ] = useState ( false ) ;
@@ -99,7 +100,6 @@ const AtlasProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) =
99100 } = useQuery ( {
100101 queryKey : [ `UserSettings` ] ,
101102 enabled : isVerified && ! isUndefined ( address ) ,
102- staleTime : Infinity ,
103103 queryFn : async ( ) => {
104104 try {
105105 if ( ! isVerified || isUndefined ( address ) ) return undefined ;
@@ -115,6 +115,11 @@ const AtlasProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) =
115115 refetchUser ( ) ;
116116 } , [ isVerified , refetchUser ] ) ;
117117
118+ // remove old user's data on address change
119+ useEffect ( ( ) => {
120+ queryClient . removeQueries ( { queryKey : [ "UserSettings" ] } ) ;
121+ } , [ address , queryClient ] ) ;
122+
118123 // this would change based on the fields we have and what defines a user to be existing
119124 const userExists = useMemo ( ( ) => {
120125 if ( ! user ) return false ;
0 commit comments