app/src/hooks/useProfile.js (view raw)
1import {useMemo, useCallback} from 'react';
2import {useAuth} from 'strapi-react-context';
3
4export default () => {
5 const {token, authState, updateProfile} = useAuth();
6
7 const connected = useMemo(() => !!token, [token]);
8
9 const user = useMemo(() => authState?.user, [authState]);
10
11 const addEvent = useCallback(
12 async event => {
13 if (!!token) {
14 const {user} = authState;
15 const {events} = user;
16 updateProfile({
17 ...user,
18 events: !!events
19 ? [...events.filter(e => e !== event.id), event.id]
20 : [event.id],
21 });
22 }
23 },
24 [token, authState] // eslint-disable-line
25 );
26
27 return {connected, user, addEvent};
28};