all repos — caroster @ 5ecddb30cd1351970186d1d7939cad57554ce781

[Octree] Group carpool to your event https://caroster.io

frontend/hooks/useProfile.js (view raw)

 1import {useState, useEffect} from 'react';
 2import useAuthStore from '../stores/useAuthStore';
 3import {useProfileLazyQuery} from '../generated/graphql';
 4
 5const useProfile = () => {
 6  const token = useAuthStore(s => s.token);
 7  const user = useAuthStore(s => s.user);
 8  const [profile, setProfile] = useState();
 9  const [fetchProfile, {data}] = useProfileLazyQuery();
10
11  useEffect(() => {
12    if (token) {
13      fetchProfile();
14    }
15  }, [token]);
16
17  useEffect(() => {
18    if (data) setProfile(data.me?.profile);
19  }, [data]);
20
21  return {
22    profile,
23    connected: !!token,
24    user: user,
25    isReady: typeof profile !== 'undefined',
26  };
27};
28
29export default useProfile;