From 284ab3dbceea63278b765b334d947f97930426f6 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sat, 6 Nov 2021 09:28:13 +0100 Subject: [PATCH] small refactor + add Sentry.captureException in two catch blocks --- .../FormDialog/FormDialog.useSuggestions.ts | 5 +- src/libs/auth/Provider.tsx | 59 +++++++++++-------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/src/features/QualificationsPage/components/FormDialog/FormDialog.useSuggestions.ts b/src/features/QualificationsPage/components/FormDialog/FormDialog.useSuggestions.ts index 859f875..8b5b62e 100644 --- a/src/features/QualificationsPage/components/FormDialog/FormDialog.useSuggestions.ts +++ b/src/features/QualificationsPage/components/FormDialog/FormDialog.useSuggestions.ts @@ -1,6 +1,7 @@ import { useState } from 'react'; import { useApolloClient } from '@apollo/client'; import { useDebounce } from 'react-use'; +import * as Sentry from '@sentry/react'; import { QUERY_PROFESSIONS } from './queries'; import { Profession, Query, QueryProfessionsArgs } from 'libs/graphql/types'; @@ -31,7 +32,9 @@ const useSuggestions = () => { if (data.professions?.items) { setSuggestions(data.professions.items); } - } catch (e) {} + } catch (e) { + Sentry.captureException(e); + } setIsLoadingSuggestions(false); }; diff --git a/src/libs/auth/Provider.tsx b/src/libs/auth/Provider.tsx index 57f8c71..0f61d72 100644 --- a/src/libs/auth/Provider.tsx +++ b/src/libs/auth/Provider.tsx @@ -1,13 +1,13 @@ -import { useMemo, useState, useEffect } from 'react'; +import { useMemo, useState, useEffect, useCallback } from 'react'; import { useApolloClient } from '@apollo/client'; import { isFunction } from 'lodash'; +import * as Sentry from '@sentry/react'; import { context as Context } from './context'; import { AuthContext, User } from './types'; import { MutationSignInArgs, Mutation } from 'libs/graphql/types'; import TokenStorage from '../tokenstorage/TokenStorage'; import { QUERY_ME } from './queries'; import { MUTATION_SIGN_IN } from './mutations'; -import { useCallback } from 'react'; export interface AuthProviderProps { tokenStorage?: TokenStorage; @@ -31,17 +31,22 @@ export function AuthProvider(props: AuthProviderProps) { }, [props.tokenStorage]); const loadUser = useCallback(async () => { - if (tokenStorage.token) { - try { - const result = await client.query({ - query: QUERY_ME, - fetchPolicy: 'network-only', - }); - if (result.data.me) { - setUser(result.data.me); - } - } catch (e) {} + if (!tokenStorage.token) { + return; } + + try { + const result = await client.query({ + query: QUERY_ME, + fetchPolicy: 'network-only', + }); + if (result.data.me) { + setUser(result.data.me); + } + } catch (e) { + Sentry.captureException(e); + } + setLoading(false); }, [setUser, setLoading, client, tokenStorage]); @@ -67,22 +72,24 @@ export function AuthProvider(props: AuthProviderProps) { }, }); - if (result.data?.signIn?.user) { - if (isFunction(validate) && !validate(result.data.signIn.user)) { - return null; - } - tokenStorage.setToken(result.data.signIn.token); - setUser(result.data.signIn.user); - client.writeQuery({ - query: QUERY_ME, - data: { - me: result.data.signIn.user, - }, - }); - return result.data.signIn.user; + if (!result.data?.signIn?.user) { + return null; } - 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({ + query: QUERY_ME, + data: { + me: result.data.signIn.user, + }, + }); + + return result.data.signIn.user; }; const signOut = () => {