import React, { useState, useEffect, useReducer, useContext } from 'react'; import { BrowserRouter as Router, Switch, Route, Link, useParams, useHistory } from 'react-router-dom'; import { Button, Container, Checkbox, Dimmer, Divider, Dropdown, Form, Grid, Header, Icon, Image, Menu, Message, Segment, Table } from 'semantic-ui-react'; import { BarChart, Bar, LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, ReferenceLine } from 'recharts'; import { apiUrl, statusColor, BasicTable, staticUrl, requester } from './utils.js'; import { NotFound } from './Misc.js'; let memberCountCache = false; let signupCountCache = false; let spaceActivityCache = false; export function Charts(props) { const [memberCount, setMemberCount] = useState(memberCountCache); const [signupCount, setSignupCount] = useState(signupCountCache); const [spaceActivity, setSpaceActivity] = useState(spaceActivityCache); useEffect(() => { requester('/charts/membercount/', 'GET') .then(res => { setMemberCount(res); memberCountCache = res; }) .catch(err => { console.log(err); }); requester('/charts/signupcount/', 'GET') .then(res => { setSignupCount(res); signupCountCache = res; }) .catch(err => { console.log(err); }); requester('/charts/spaceactivity/', 'GET') .then(res => { setSpaceActivity(res); spaceActivityCache = res; }) .catch(err => { console.log(err); }); }, []); return (
Charts
Summary
{memberCount && signupCount && <>

The total member count is {memberCount.slice().reverse()[0].member_count} members, compared to {memberCount.slice().reverse()[30].member_count} members 30 days ago.

The green member count is {memberCount.slice().reverse()[0].green_count} members, compared to {memberCount.slice().reverse()[30].green_count} members 30 days ago.

There were {signupCount.slice().reverse()[0].signup_count} signups so far this month, and {signupCount.slice().reverse()[1].signup_count} signups last month.

}
Member Counts

Daily since March 2nd, 2020.

{memberCount && }

Member Count: number of Prepaid, Current, Due, and Overdue members on Spaceport.

Green Count: number of Prepaid and Current members.

Space Activity

Daily since March 7th, 2020, updates hourly.

{spaceActivity && }

Cards Scans: number of individual members who have scanned to enter the space.

Signup Count

Monthly for the last sixteen months, updates daily.

{signupCount && }

Signup Count: number of brand new account registrations that month.

Later Vetted Count: number of those signups who eventually got vetted (at a later date).

Retained Count: number of those signups who are still a member currently.

); };