This repository has been archived on 2026-09-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
eco-hack/client/src/App.js
T
2021-10-05 21:35:42 +02:00

104 lines
3.8 KiB
JavaScript

import { useEffect, useState } from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import { Home } from "./pages/Home";
import { About } from "./pages/About";
import { Users } from "./pages/Users";
import { Credits } from "./pages/Credits";
import { NotFound } from "./pages/NotFound";
import { Navbar } from "./components/Navbar";
import { CreateEvent } from "./pages/CreateEvent";
import { Event } from "./pages/Event";
import { API_CLIENT } from "./constants";
import { LoginPage } from "./pages/Login";
export const App = () => {
const [routes, setRoutes] = useState(
API_CLIENT.events.map((e) => {
return (
<Route key={e._id} exact path={`/event/${e._id}`}>
<Event
data={{
name: e.name,
type: e.type,
description: e.description,
address: e.address,
time: e.time,
lat: e.lat,
lon: e.lon,
id: e._id,
createdTime: e.created.time,
}}
></Event>
</Route>
);
})
);
useEffect(() => {
API_CLIENT.on("EVENT_RELOAD", (list) => {
setRoutes(
list.map((e) => {
return (
<Route key={e._id} exact path={`/event/${e._id}`}>
<Event
data={{
name: e.name,
type: e.type,
description: e.description,
address: e.address,
time: e.time,
lat: e.lat,
lon: e.lon,
id: e._id,
createdTime: e.created.time,
}}
></Event>
</Route>
);
})
);
});
API_CLIENT.on("EVENT_CREATE", (list) => {
setRoutes(
list.map((e) => {
return (
<Route key={e._id} exact path={`/event/${e._id}`}>
<Event
data={{
name: e.name,
type: e.type,
description: e.description,
address: e.address,
time: e.time,
lat: e.lat,
lon: e.lon,
id: e._id,
createdTime: e.created.time,
}}
></Event>
</Route>
);
})
);
});
}, []);
return (
<Router>
<Navbar />
<Switch>
<Route exact path="/about" component={About} />
<Route exact path="/credits" component={Credits} />
<Route exact path="/users" component={Users} />
<Route exact path="/">
<Home />
</Route>
<Route exact path="/create" component={CreateEvent} />
<Route exact path="/login" component={LoginPage} />
{routes}
<Route component={NotFound} />
</Switch>
</Router>
);
};