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'; import { LoginForm, SignupForm } from './LoginSignup.js'; import { AccountForm } from './Account.js'; function MemberInfo(props) { const user = props.user; const member = user.member; const lastTrans = user.transactions && user.transactions.slice(0,3); const lastCard = user.cards && user.cards.sort((a, b) => a.last_seen_at < b.last_seen_at)[0]; return (
{member.preferred_name} {member.last_name}
Status: {member.status || 'Unknown'} Expiry: {member.expire_date}
{!member.photo_medium && Welcome, new member!

Click here to view your appliction forms.

} {!member.photo_medium && Please set a member photo!

Visit the account settings page to set one.

}
Details
Application: {member.application_date || 'Unknown'} Start: {member.current_start_date || 'Unknown'} Vetted: {member.vetted_date || 'Not vetted'} Monthly: ${member.monthly_fees || 'Unknown'} Card Number: {lastCard && lastCard.card_number || 'None'} {member.photo_medium &&

View application forms

}
Latest Transactions
{lastTrans.length ? lastTrans.map(x => {x.date} {x.account_type} ${x.amount} ) : None }
); }; 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 ( {user ? user.member.set_details ? : :
Or
}
Home

Welcome to the Protospace member portal! Here you can view member info, join classes, and manage your membership.

Quick Links

Main Website

Protospace Wiki

Discussion Google Group

Admin Google Group

Google Drive

Protospace Stats

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

); };