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;