import React from "react";
import useSWR from "swr";
import { DateTime } from "luxon";
import { BrowserRouter, Route, Switch, Link } from "react-router-dom";
import MainPage from "./MainPage";
import History from "./History";
import HistoryTable from "./HistoryTable";
import "./App.css";
const url = "/data.json";
function App() {
let { data: rawData, error: error } = useSWR(url);
const [timeDifference, setTimeDifference] = React.useState(1);
const [showAllTime, setShowAllTime] = React.useState(false);
if (error)
return (
RIT Covid Dashboard
An error occurred
);
if (!rawData)
return (
RIT Covid Dashboard
Loading latest data...
);
// rawData = rawData.slice(0, 177);
let data = rawData;
console.log(data.length);
const local = DateTime.local().zoneName;
const semesterStart = DateTime.fromISO("2021-01-01");
// if (!showAllTime) {
// data = rawData.filter((d) => {
// let date = DateTime.fromSQL(d.last_updated, { zone: "UTC" }).setZone(local);
// return date > semesterStart;
// });
// const last = rawData[rawData.length - data.length - 1];
// data = data.map((d) => {
// return {
// alert_level: d.alert_level,
// beds_available: d.beds_available,
// isolation_off_campus: d.isolation_off_campus,
// isolation_on_campus: d.isolation_on_campus,
// last_updated: d.last_updated,
// new_staff: d.new_staff,
// new_students: d.new_students,
// quarantine_off_campus: d.quarantine_off_campus,
// quarantine_on_campus: d.quarantine_on_campus,
// tests_administered: d.tests_administered - last.tests_administered,
// total_staff: d.total_staff - last.total_staff,
// total_students: d.total_students - last.total_students,
// };
// });
// }
const latest = data[data.length - 1];
const prior = data[data.length - (1 + timeDifference)];
return (
RIT Covid Dashboard
{/*
Last Updated:{" "}
{lastUpdate.toLocaleString({
weekday: "long",
month: "long",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
})}
Prior Update:{" "}
{priorUpdate.toLocaleString({
weekday: "long",
month: "long",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
})}{" "}
({timeDifference == 1 ? "one day ago" : timeDifference == 5 ? "one week ago" : "two weeks ago"})
*/}
{/*
*/}
{
return { value: d.total_students, date: d.last_updated };
})}
/>
{
return { value: d.total_staff, date: d.last_updated };
})}
/>
{
return { value: d.new_students, date: d.last_updated };
})}
/>
{
return { value: d.new_staff, date: d.last_updated };
})}
/>
{
return { value: d.quarantine_on_campus, date: d.last_updated };
})}
/>
{
return { value: d.quarantine_off_campus, date: d.last_updated };
})}
/>
{
return { value: d.isolation_on_campus, date: d.last_updated };
})}
/>
{
return { value: d.isolation_off_campus, date: d.last_updated };
})}
/>
{
return { value: d.tests_administered, date: d.last_updated };
})}
/>
{
return { value: d.beds_available, date: d.last_updated };
})}
/>
By Galen Guyer. Source available on{" "}
GitHub
{" "}
(
Report Issue
)
API Documentation
);
}
export default App;