small refactor + add Sentry.captureException in two catch blocks
This commit is contained in:
parent
f528cedafb
commit
284ab3dbce
|
@ -1,6 +1,7 @@
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import { useDebounce } from 'react-use';
|
import { useDebounce } from 'react-use';
|
||||||
|
import * as Sentry from '@sentry/react';
|
||||||
import { QUERY_PROFESSIONS } from './queries';
|
import { QUERY_PROFESSIONS } from './queries';
|
||||||
import { Profession, Query, QueryProfessionsArgs } from 'libs/graphql/types';
|
import { Profession, Query, QueryProfessionsArgs } from 'libs/graphql/types';
|
||||||
|
|
||||||
|
@ -31,7 +32,9 @@ const useSuggestions = () => {
|
||||||
if (data.professions?.items) {
|
if (data.professions?.items) {
|
||||||
setSuggestions(data.professions.items);
|
setSuggestions(data.professions.items);
|
||||||
}
|
}
|
||||||
} catch (e) {}
|
} catch (e) {
|
||||||
|
Sentry.captureException(e);
|
||||||
|
}
|
||||||
setIsLoadingSuggestions(false);
|
setIsLoadingSuggestions(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import { useMemo, useState, useEffect } from 'react';
|
import { useMemo, useState, useEffect, useCallback } from 'react';
|
||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import { isFunction } from 'lodash';
|
import { isFunction } from 'lodash';
|
||||||
|
import * as Sentry from '@sentry/react';
|
||||||
import { context as Context } from './context';
|
import { context as Context } from './context';
|
||||||
import { AuthContext, User } from './types';
|
import { AuthContext, User } from './types';
|
||||||
import { MutationSignInArgs, Mutation } from 'libs/graphql/types';
|
import { MutationSignInArgs, Mutation } from 'libs/graphql/types';
|
||||||
import TokenStorage from '../tokenstorage/TokenStorage';
|
import TokenStorage from '../tokenstorage/TokenStorage';
|
||||||
import { QUERY_ME } from './queries';
|
import { QUERY_ME } from './queries';
|
||||||
import { MUTATION_SIGN_IN } from './mutations';
|
import { MUTATION_SIGN_IN } from './mutations';
|
||||||
import { useCallback } from 'react';
|
|
||||||
|
|
||||||
export interface AuthProviderProps {
|
export interface AuthProviderProps {
|
||||||
tokenStorage?: TokenStorage;
|
tokenStorage?: TokenStorage;
|
||||||
|
@ -31,17 +31,22 @@ export function AuthProvider(props: AuthProviderProps) {
|
||||||
}, [props.tokenStorage]);
|
}, [props.tokenStorage]);
|
||||||
|
|
||||||
const loadUser = useCallback(async () => {
|
const loadUser = useCallback(async () => {
|
||||||
if (tokenStorage.token) {
|
if (!tokenStorage.token) {
|
||||||
try {
|
return;
|
||||||
const result = await client.query<MeQueryResult>({
|
|
||||||
query: QUERY_ME,
|
|
||||||
fetchPolicy: 'network-only',
|
|
||||||
});
|
|
||||||
if (result.data.me) {
|
|
||||||
setUser(result.data.me);
|
|
||||||
}
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await client.query<MeQueryResult>({
|
||||||
|
query: QUERY_ME,
|
||||||
|
fetchPolicy: 'network-only',
|
||||||
|
});
|
||||||
|
if (result.data.me) {
|
||||||
|
setUser(result.data.me);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
Sentry.captureException(e);
|
||||||
|
}
|
||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}, [setUser, setLoading, client, tokenStorage]);
|
}, [setUser, setLoading, client, tokenStorage]);
|
||||||
|
|
||||||
|
@ -67,22 +72,24 @@ export function AuthProvider(props: AuthProviderProps) {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (result.data?.signIn?.user) {
|
if (!result.data?.signIn?.user) {
|
||||||
if (isFunction(validate) && !validate(result.data.signIn.user)) {
|
return null;
|
||||||
return null;
|
|
||||||
}
|
|
||||||
tokenStorage.setToken(result.data.signIn.token);
|
|
||||||
setUser(result.data.signIn.user);
|
|
||||||
client.writeQuery<MeQueryResult>({
|
|
||||||
query: QUERY_ME,
|
|
||||||
data: {
|
|
||||||
me: result.data.signIn.user,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
return result.data.signIn.user;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
if (isFunction(validate) && !validate(result.data.signIn.user)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
tokenStorage.setToken(result.data.signIn.token);
|
||||||
|
setUser(result.data.signIn.user);
|
||||||
|
client.writeQuery<MeQueryResult>({
|
||||||
|
query: QUERY_ME,
|
||||||
|
data: {
|
||||||
|
me: result.data.signIn.user,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return result.data.signIn.user;
|
||||||
};
|
};
|
||||||
|
|
||||||
const signOut = () => {
|
const signOut = () => {
|
||||||
|
|
Reference in New Issue