diff --git a/webclient/src/Home.js b/webclient/src/Home.js index 72abbba..9da21cc 100644 --- a/webclient/src/Home.js +++ b/webclient/src/Home.js @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { BrowserRouter as Router, Switch, Route, Link, useParams } from 'react-router-dom'; +import moment from 'moment'; import './light.css'; import { Container, Divider, Dropdown, Form, Grid, Header, Icon, Image, Menu, Message, Segment, Table } from 'semantic-ui-react'; import { statusColor, BasicTable, staticUrl, requester } from './utils.js'; @@ -114,6 +115,23 @@ function MemberInfo(props) { export function Home(props) { const { user } = props; + const [stats, setStats] = useState(JSON.parse(localStorage.getItem('stats', 'false'))); + + useEffect(() => { + requester('/stats/', 'GET') + .then(res => { + setStats(res); + localStorage.setItem('stats', JSON.stringify(res)); + }) + .catch(err => { + console.log(err); + setUserCache(null); + }); + }, []); + + const getStat = (x) => stats && stats[x] ? stats[x] : '?'; + const getDateStat = (x) => stats && stats[x] ? moment.utc(stats[x]).local().format('ll') : '?'; + return ( @@ -149,13 +167,13 @@ export function Home(props) {
Protospace Stats
-

Next member meeting: Jan 01, 2099

-

Next monthly clean: Jan 01, 2099

-

Current member count: 200

-

Due members: 20

-

Expired members: 100

-

Bay 108 temperature: 21 C

-

Bay 110 temperature: 22 C

+

Next member meeting: {getDateStat('next_meeting')}

+

Next monthly clean: {getDateStat('next_clean')}

+

Member count: {getStat('member_count')}

+

Green members: {getStat('green_count')}

+

Old members: {getStat('paused_count')}

+

Bay 108 temperature: {getStat('bay_108_temp')} °C

+

Bay 110 temperature: {getStat('bay_110_temp')} °C