diff --git a/app/components/RolesUpdater.js b/app/components/RolesUpdater.js index ea6240230c09859a1fe27718aac91bc3f7ece0e5..8a20cb733e6a82af102a7b256fa7b915a0ecb7f9 100644 --- a/app/components/RolesUpdater.js +++ b/app/components/RolesUpdater.js @@ -1,7 +1,7 @@ -import { useCallback } from 'react' +import React, { useCallback } from 'react' import { useQuery } from '@apollo/client' +import { Redirect } from 'react-router-dom' import { GET_CURRENT_USER } from '../queries' - import currentRolesVar from '../shared/currentRolesVar' const updateStuff = data => { @@ -12,13 +12,18 @@ const updateStuff = data => { const RolesUpdater = ({ children, history, match }) => { // This updates the current roles app-wide using Apollo's makeVar - useQuery(GET_CURRENT_USER, { + const { error } = useQuery(GET_CURRENT_USER, { pollInterval: 5000, notifyOnNetworkStatusChange: true, fetchPolicy: 'network-only', // TODO: useCallback used because of bug: https://github.com/apollographql/apollo-client/issues/6301 onCompleted: useCallback(data => updateStuff(data), []), }) + + if (error && !error.networkError) { + return <Redirect to="/login" /> + } + return null }