all repos — caroster @ 9ce866648000343d9681be1a31185970c359b52d

[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) fetchProfile();
13  }, [token]);
14
15  useEffect(() => {
16    if (data) setProfile(data.me?.profile);
17  }, [data]);
18
19  // // TODO is useless ?
20  // const addEvent = async event => {
21  //   try {
22  //     if (!profile)
23  //       throw new Error(`Can't add event to logged user: profile empty`);
24  //     if (!profile?.events?.some(({id}) => id === event.id))
25  //       await strapi.services.users.update('me', {
26  //         events: [...profile.events, event.id],
27  //       });
28  //   } catch (error) {
29  //     console.error(error);
30  //   }
31  // };
32
33  return {
34    profile,
35    // addEvent,
36    connected: !!token,
37    user: user,
38    isReady: typeof profile !== 'undefined',
39  };
40};
41
42export default useProfile;