2022-11-15 13:34:40 +01:00
|
|
|
import { useEffect, useState } from "react";
|
2022-11-15 00:06:15 +01:00
|
|
|
import ContainerView from "./components/ContainerView";
|
|
|
|
|
import Header from "./components/Header";
|
|
|
|
|
import Login from "./components/Login";
|
|
|
|
|
import Spinner from "./components/Spinner";
|
|
|
|
|
import { checkLogin, logOut } from "./services/Api";
|
|
|
|
|
|
|
|
|
|
const App = () => {
|
|
|
|
|
const [loading, setLoading] = useState(true);
|
|
|
|
|
const [loggedIn, setLoggedIn] = useState(false);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setLoading(true);
|
|
|
|
|
(async () => {
|
|
|
|
|
setLoggedIn(await checkLogin());
|
|
|
|
|
setLoading(false);
|
|
|
|
|
})();
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
const onLogIn = () => {
|
|
|
|
|
setLoading(false);
|
|
|
|
|
setLoggedIn(true);
|
2022-11-15 13:34:40 +01:00
|
|
|
};
|
2022-11-15 00:06:15 +01:00
|
|
|
|
|
|
|
|
const onLogOut = () => {
|
|
|
|
|
logOut();
|
|
|
|
|
setLoading(false);
|
|
|
|
|
setLoggedIn(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (loading === true) {
|
|
|
|
|
return <div className="mt-5 pt-5"><Spinner /></div>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (loggedIn !== true) {
|
|
|
|
|
return <Login onLogin={onLogIn} />;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Header onLogOut={onLogOut} />
|
|
|
|
|
<ContainerView />
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-15 13:34:40 +01:00
|
|
|
export default App;
|