guesstimate/client/src/components/App.tsx

29 lines
1.0 KiB
TypeScript
Raw Normal View History

2020-08-09 10:51:02 +02:00
import React, { FunctionComponent, useState, useEffect } from 'react';
2020-08-08 15:04:59 +02:00
import { BrowserRouter, Route, Redirect, Switch } from "react-router-dom";
import { HomePage } from './HomePage/HomePage';
import { ProfilePage } from './ProfilePage/ProfilePage';
2020-08-09 10:51:02 +02:00
import { DashboardPage } from './DashboardPage/DashboardPage';
import { PrivateRoute } from './PrivateRoute';
import { useLoggedIn, LoggedInContext } from '../hooks/useLoggedIn';
import { useUserProfile } from '../gql/queries/user';
2020-08-08 15:04:59 +02:00
2020-08-09 10:51:02 +02:00
export interface AppProps {
}
export const App: FunctionComponent<AppProps> = () => {
const { user } = useUserProfile();
return (
<LoggedInContext.Provider value={user.id !== ''}>
2020-08-08 15:04:59 +02:00
<BrowserRouter>
<Switch>
<Route path="/" exact component={HomePage} />
2020-08-09 10:51:02 +02:00
<PrivateRoute path="/profile" exact component={ProfilePage} />
<PrivateRoute path="/dashboard" exact component={DashboardPage} />
2020-08-08 15:04:59 +02:00
<Route component={() => <Redirect to="/" />} />
</Switch>
</BrowserRouter>
2020-08-09 10:51:02 +02:00
</LoggedInContext.Provider>
);
2020-08-08 15:04:59 +02:00
}