2020-08-26 09:16:05 +02:00
|
|
|
import React, { FunctionComponent, useState } from 'react';
|
2020-06-18 09:48:45 +02:00
|
|
|
import { BrowserRouter, Route, Redirect, Switch } from "react-router-dom";
|
2020-06-15 18:10:06 +02:00
|
|
|
import { HomePage } from './HomePage/HomePage';
|
2020-07-16 20:21:58 +02:00
|
|
|
import { ProfilePage } from './ProfilePage/ProfilePage';
|
2020-07-22 09:18:50 +02:00
|
|
|
import { WorkgroupPage } from './WorkgroupPage/WorkgroupPage';
|
2020-07-31 18:04:31 +02:00
|
|
|
import { DecisionSupportFilePage } from './DecisionSupportFilePage/DecisionSupportFilePage';
|
2020-08-13 10:16:00 +02:00
|
|
|
import { DashboardPage } from './DashboardPage/DashboardPage';
|
|
|
|
import { useUserProfile } from '../gql/queries/profile';
|
|
|
|
import { LoggedInContext } from '../hooks/useLoggedIn';
|
|
|
|
import { PrivateRoute } from './PrivateRoute';
|
2020-08-26 09:16:05 +02:00
|
|
|
import { useKonamiCode } from '../hooks/useKonamiCode';
|
|
|
|
import { Modal } from './Modal';
|
2020-06-15 18:10:06 +02:00
|
|
|
|
2020-08-13 10:16:00 +02:00
|
|
|
export interface AppProps {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export const App: FunctionComponent<AppProps> = () => {
|
|
|
|
const { user } = useUserProfile();
|
|
|
|
|
2020-08-26 09:16:05 +02:00
|
|
|
const [ showBoneyM, setShowBoneyM ] = useState(false);
|
|
|
|
useKonamiCode(() => setShowBoneyM(true));
|
|
|
|
|
2020-08-13 10:16:00 +02:00
|
|
|
return (
|
|
|
|
<LoggedInContext.Provider value={user.id !== ''}>
|
2020-07-21 22:25:39 +02:00
|
|
|
<BrowserRouter>
|
|
|
|
<Switch>
|
|
|
|
<Route path="/" exact component={HomePage} />
|
2020-08-13 10:16:00 +02:00
|
|
|
<PrivateRoute path="/profile" exact component={ProfilePage} />
|
|
|
|
<PrivateRoute path="/workgroups/:id" exact component={WorkgroupPage} />
|
|
|
|
<PrivateRoute path="/decisions/:id" exact component={DecisionSupportFilePage} />
|
|
|
|
<PrivateRoute path="/dashboard" exact component={DashboardPage} />
|
2020-07-21 22:25:39 +02:00
|
|
|
<Route component={() => <Redirect to="/" />} />
|
|
|
|
</Switch>
|
|
|
|
</BrowserRouter>
|
2020-08-26 09:16:05 +02:00
|
|
|
{
|
|
|
|
showBoneyM ?
|
|
|
|
<Modal active={true} showCloseButton={true} onClose={() => setShowBoneyM(false)}>
|
|
|
|
<iframe width={560} height={315}
|
|
|
|
frameBorder={0}
|
|
|
|
allowFullScreen={true}
|
|
|
|
src="https://www.youtube.com/embed/uVzT5QEEQ2c?autoplay=1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture">
|
|
|
|
</iframe>
|
|
|
|
</Modal> :
|
|
|
|
null
|
|
|
|
}
|
2020-08-13 10:16:00 +02:00
|
|
|
</LoggedInContext.Provider>
|
|
|
|
);
|
2020-06-15 18:10:06 +02:00
|
|
|
}
|