import React from 'react'; import { Switch, Route, RouteProps, Redirect } from 'react-router-dom'; import { useReactiveVar } from '@apollo/client'; import { BrowseResultsPage } from './browse/BrowseResultsPage'; import { LogIn } from './auth/LogIn'; import { NoPageFound } from './shared/NoPageFound'; import { EntityPage } from './entity/EntityPage'; import { PageRoutes } from '../conf/Global'; import { useEntityRegistry } from './useEntityRegistry'; import { HomePage } from './home/HomePage'; import { SearchPage } from './search/SearchPage'; import { isLoggedInVar } from './auth/checkAuthStatus'; import { useTrackPageView } from './analytics'; import { AnalyticsPage } from './analyticsDashboard/components/AnalyticsPage'; const ProtectedRoute = ({ isLoggedIn, ...props }: { isLoggedIn: boolean; } & RouteProps) => { if (!isLoggedIn) { window.location.replace(PageRoutes.AUTHENTICATE); return null; } return ; }; /** * Container for all views behind an authentication wall. */ export const Routes = (): JSX.Element => { useTrackPageView(); const isLoggedIn = useReactiveVar(isLoggedInVar); const entityRegistry = useEntityRegistry(); return (
} /> {entityRegistry.getEntities().map((entity) => ( } /> ))} } /> } /> } /> {/* Starting the react app locally opens /assets by default. For a smoother dev experience, we'll redirect to the homepage */} } exact />
); };