loader context added

This commit is contained in:
VividTruthKeeper 2022-07-15 15:58:42 +05:00
parent ffdef22670
commit 545d666bf5
1 changed files with 27 additions and 16 deletions

View File

@ -1,6 +1,7 @@
// Modules
import { Routes, Route } from "react-router-dom";
import { useState } from "react";
import { useState, useMemo } from "react";
import { LoaderContext } from "./context/LoaderContext";
// Styles
import "./styles/style.scss";
@ -22,27 +23,37 @@ import Calendar from "./components/global/Calendar";
const App = () => {
// Types
type drop = [boolean, React.Dispatch<React.SetStateAction<boolean>>];
type loaderType = [boolean, React.Dispatch<React.SetStateAction<boolean>>];
// State
const [dropdown, setDropdown]: drop = useState(false);
const [loader, setLoader]: loaderType = useState(false);
// Stack state into Memo
const loaderValue = useMemo(
() => ({ loader, setLoader }),
[loader, setLoader]
);
return (
<div className="App">
<Nav dropdown={dropdown} setDropdown={setDropdown} />
<div className="inner-body">
<Routes>
<Route path="/" element={<Main />} />
<Route path="/news" element={<Events />} />
<Route path="/rating" element={<Rating />} />
<Route path="/profile" element={<Profile />} />
<Route path="/event" element={<EventItem />} />
<Route path="/structure" element={<Structure />} />
<Route path="/contact" element={<Contacts />} />
<Route path="/calendar" element={<Calendar />} />
</Routes>
<LoaderContext.Provider value={loaderValue}>
<div className="App">
<Nav dropdown={dropdown} setDropdown={setDropdown} />
<div className="inner-body">
<Routes>
<Route path="/" element={<Main />} />
<Route path="/news" element={<Events />} />
<Route path="/rating" element={<Rating />} />
<Route path="/profile" element={<Profile />} />
<Route path="/event" element={<EventItem />} />
<Route path="/structure" element={<Structure />} />
<Route path="/contact" element={<Contacts />} />
<Route path="/calendar" element={<Calendar />} />
</Routes>
</div>
<Footer dropdown={dropdown} setDropdown={setDropdown} />
</div>
<Footer dropdown={dropdown} setDropdown={setDropdown} />
</div>
</LoaderContext.Provider>
);
};