react-typescript-chess-fede.../src/App.tsx

63 lines
1.9 KiB
TypeScript
Raw Normal View History

2022-06-23 07:11:01 +00:00
// Modules
import { Routes, Route } from "react-router-dom";
2022-07-15 10:58:42 +00:00
import { useState, useMemo } from "react";
2022-07-16 20:29:46 +00:00
import { EventContext } from "./context/LoaderContext";
2022-06-23 07:11:01 +00:00
// Styles
2022-06-21 18:09:14 +00:00
import "./styles/style.scss";
2022-06-23 07:11:01 +00:00
// Components
2022-06-23 08:44:47 +00:00
import Nav from "./components/global/Nav";
import Footer from "./components/global/Footer";
2022-06-23 07:11:01 +00:00
2022-07-16 20:29:46 +00:00
// Type
import { loaderType } from "./types/contextType";
2022-06-23 07:11:01 +00:00
// Pages
import Main from "./pages/Main";
2022-06-23 19:14:20 +00:00
import Events from "./pages/Events";
2022-06-23 22:42:57 +00:00
import Rating from "./pages/Rating";
2022-06-28 14:08:16 +00:00
import Profile from "./pages/Profile";
2022-06-28 20:40:51 +00:00
import EventItem from "./pages/EventItem";
2022-06-28 21:28:33 +00:00
import Structure from "./pages/Structure";
2022-06-29 12:25:48 +00:00
import Contacts from "./pages/Contact";
2022-06-30 00:51:09 +00:00
import Calendar from "./components/global/Calendar";
2022-06-23 07:11:01 +00:00
2022-06-21 18:01:52 +00:00
const App = () => {
2022-07-12 11:14:08 +00:00
// Types
type drop = [boolean, React.Dispatch<React.SetStateAction<boolean>>];
// State
const [dropdown, setDropdown]: drop = useState(false);
2022-07-16 20:29:46 +00:00
const [eventData, setEventData]: loaderType = useState(null);
2022-07-15 10:58:42 +00:00
// Stack state into Memo
const loaderValue = useMemo(
2022-07-16 20:29:46 +00:00
() => ({ eventData, setEventData }),
[eventData, setEventData]
2022-07-15 10:58:42 +00:00
);
2022-07-12 11:14:08 +00:00
2022-06-23 07:11:01 +00:00
return (
2022-07-16 20:29:46 +00:00
<EventContext.Provider value={loaderValue}>
2022-07-15 10:58:42 +00:00
<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 />} />
2022-07-17 12:56:34 +00:00
<Route path="/event/:eventId" element={<EventItem />} />
2022-07-15 10:58:42 +00:00
<Route path="/structure" element={<Structure />} />
<Route path="/contact" element={<Contacts />} />
<Route path="/calendar" element={<Calendar />} />
</Routes>
</div>
<Footer dropdown={dropdown} setDropdown={setDropdown} />
2022-06-23 07:11:01 +00:00
</div>
2022-07-16 20:29:46 +00:00
</EventContext.Provider>
2022-06-23 07:11:01 +00:00
);
2022-06-21 18:01:52 +00:00
};
export default App;