aboutsummaryrefslogtreecommitdiff
path: root/src/App.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/App.jsx')
-rw-r--r--src/App.jsx140
1 files changed, 3 insertions, 137 deletions
diff --git a/src/App.jsx b/src/App.jsx
index 5afcb03..ff72a91 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -1,112 +1,16 @@
-import { useLocation, Routes, Route, Link } from "react-router-dom";
-import { useState, lazy, Suspense } from "react";
-import useFetch from "./useFetch";
-import { DateTime } from "luxon";
+import { Link } from "react-router-dom";
import "./App.css";
-const Index = lazy(() => import("./pages/Index"));
-const Graph = lazy(() => import("./pages/Graph"));
-import { useEffect } from "react";
+import Index from "./pages/Index";
const App = () => {
- const url = localStorage.getItem("url") ?? "https://ritcoviddashboard.com/api/v0/history";
-
- let routerLocation = useLocation();
- useEffect(() => {
- !window.goatcounter ??
- window.goatcounter.count({
- path: location.pathname + location.search + location.hash,
- });
- }, [routerLocation]);
-
- const response = useFetch(url);
-
- const [timeDifference, setTimeDifference] = useState(1);
- const local = DateTime.local().zoneName;
-
- let data = response.data ?? [];
-
- const latest = response.loading ? null : data[data.length - 1];
- const prior = response.loading ? null : data[data.length - (1 + timeDifference)];
-
- const lastUpdate = response.loading ? null : DateTime.fromSQL(latest.last_updated).setZone(local);
- const priorUpdate = response.loading ? null : DateTime.fromSQL(prior.last_updated).setZone(local);
-
return (
<div className="App">
<header>
<Link to="/">
<h1>RIT COVID Dashboard</h1>
</Link>
- <Updated
- loading={response.loading}
- lastUpdate={lastUpdate}
- priorUpdate={priorUpdate}
- timeDifference={timeDifference}
- />
</header>
- <Routes>
- <Route
- path="/totalstudents"
- element={
- <Suspense fallback={null}>
- <Graph
- name={"Total Student Cases"}
- response={response}
- dataKey={"total_students"}
- timeDifference={timeDifference}
- />
- </Suspense>
- }
- ></Route>
- <Route
- path="/totalstaff"
- element={
- <Suspense fallback={null}>
- <Graph
- name={"Total Staff Cases"}
- response={response}
- dataKey={"total_staff"}
- timeDifference={timeDifference}
- />
- </Suspense>
- }
- ></Route>
- <Route
- path="/newstudents"
- element={
- <Suspense fallback={null}>
- <Graph
- name={"New Student Cases"}
- response={response}
- dataKey={"new_students"}
- timeDifference={timeDifference}
- />
- </Suspense>
- }
- ></Route>
- <Route
- path="/newstaff"
- element={
- <Suspense fallback={null}>
- <Graph
- name={"New Staff Cases"}
- response={response}
- dataKey={"new_staff"}
- timeDifference={timeDifference}
- />
- </Suspense>
- }
- ></Route>
- <Route
- exact
- path="/"
- element={
- <Suspense fallback={null}>
- <Index response={response} timeDifference={timeDifference} />
- </Suspense>
- }
- />
- </Routes>
+ <Index />
<footer>
<p>
By Galen Guyer. Source available on{" "}
@@ -119,48 +23,10 @@ const App = () => {
</a>
)
</p>
- <p>
- <a className="BlueLink" href="https://galenguyer.com/projects/ritcoviddashboard">
- API Documentation
- </a>
- </p>
</footer>
<script data-goatcounter="https://rcd.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
</div>
);
};
-const Updated = (props) => {
- const { loading, lastUpdate, priorUpdate, timeDifference } = props;
- if (loading) {
- return <div></div>;
- }
-
- return (
- <div className="Updated">
- <div className="Latest">
- Last Updated:{" "}
- {lastUpdate.toLocaleString({
- weekday: "long",
- month: "long",
- day: "2-digit",
- hour: "2-digit",
- minute: "2-digit",
- })}
- </div>
- <div className="Prior">
- Prior Update:{" "}
- {priorUpdate.toLocaleString({
- weekday: "long",
- month: "long",
- day: "2-digit",
- hour: "2-digit",
- minute: "2-digit",
- })}{" "}
- ({timeDifference == 1 ? "one weekday ago" : timeDifference == 5 ? "one week ago" : "two weeks ago"})
- </div>
- </div>
- );
-};
-
export default App;