Best approach to fetch user data in client

I’m trying to create a useUser hook which fetches the latest the logged in user data using useQuery.
I’m newbie to apollo client and as I don’t exactly know how apollo client fetches work, I don’t know what is the best approach to always get the latest data of user and also have it optimized by creating a hook called useUser.
I want to refetch the data after user updates its profile, and also it will be a good ux if I could refetch it when use verifies its email (not much important anyway)

Can anyone give me an idea to implement it?
I’m using NextJS and NextAuth