import React from 'react'; import { Switch, Route, RouteProps, Redirect } from 'react-router-dom'; import { useReactiveVar } from '@apollo/client'; import { LogIn } from './auth/LogIn'; import { NoPageFound } from './shared/NoPageFound'; import { PageRoutes } from '../conf/Global'; import { isLoggedInVar } from './auth/checkAuthStatus'; import { useTrackPageView } from './analytics'; import { ProtectedRoutes } from './ProtectedRoutes'; const ProtectedRoute = ({ isLoggedIn, ...props }: { isLoggedIn: boolean; } & RouteProps) => { const currentPath = window.location.pathname + window.location.search; if (!isLoggedIn) { window.location.replace(`${PageRoutes.AUTHENTICATE}?redirect_uri=${encodeURIComponent(currentPath)}`); return null; } return ; }; /** * Container for all top-level routes. */ export const Routes = (): JSX.Element => { useTrackPageView(); const isLoggedIn = useReactiveVar(isLoggedInVar); return ( } /> {/* Starting the react app locally opens /assets by default. For a smoother dev experience, we'll redirect to the homepage */} } exact /> ); };