import React, { useState, useEffect } from 'react'; import { BrowserRouter as Router, Switch, Route, Link, useParams, useHistory } from 'react-router-dom'; import './light.css'; import { Container, Checkbox, Divider, Dropdown, Form, Grid, Header, Icon, Image, Menu, Message, Segment, Table } from 'semantic-ui-react'; import { BasicTable, staticUrl, requester } from './utils.js'; function AdminCardDetail(props) { const [input, setInput] = useState({ ...props.card }); const [error, setError] = useState(false); const [loading, setLoading] = useState(false); const [success, setSuccess] = useState(false); const id = props.card.id; const handleValues = (e, v) => setInput({ ...input, [v.name]: v.value }); const handleUpload = (e, v) => setInput({ ...input, [v.name]: e.target.files[0] }); const handleChange = (e) => handleValues(e, e.currentTarget); const handleCheck = (e, v) => setInput({ ...input, [v.name]: v.checked }); const handleSubmit = (e) => { setLoading(true); setSuccess(false); const data = { ...input, member_id: props.result.member.id }; requester('/cards/'+id+'/', 'PUT', props.token, data) .then(res => { setLoading(false); setSuccess(true); setError(false); setInput(res); }) .catch(err => { setLoading(false); console.log(err); setError(err.data); }); }; const handleDelete = (e) => { e.preventDefault(); requester('/cards/'+id+'/', 'DELETE', props.token) .then(res => { setInput(false); }) .catch(err => { console.log(err); }); }; const makeProps = (name) => ({ name: name, onChange: handleChange, value: input[name] || '', error: error[name], }); const statusOptions = [ { key: '0', text: 'Card Active', value: 'card_active' }, { key: '1', text: 'Card Blocked', value: 'card_blocked' }, { key: '2', text: 'Card Inactive', value: 'card_inactive' }, { key: '3', text: 'Card Member Blocked', value: 'card_member_blocked' }, ]; return ( input ?
{success ? 'Saved.' : 'Save'} Delete Notes: {input.notes || 'None'}
: Deleted card: {props.card.card_number} ); }; export function AdminMemberCards(props) { const cards = props.result.cards; const [input, setInput] = useState({ active_status: 'card_active' }); const [error, setError] = useState(false); const [loading, setLoading] = useState(false); const [success, setSuccess] = useState(false); const { id } = useParams(); const handleValues = (e, v) => setInput({ ...input, [v.name]: v.value }); const handleUpload = (e, v) => setInput({ ...input, [v.name]: e.target.files[0] }); const handleChange = (e) => handleValues(e, e.currentTarget); const handleCheck = (e, v) => setInput({ ...input, [v.name]: v.checked }); const handleSubmit = (e) => { setLoading(true); setSuccess(false); const data = { ...input, member_id: props.result.member.id }; requester('/cards/', 'POST', props.token, data) .then(res => { setLoading(false); setSuccess(true); setError(false); props.setResult({ ...props.result, cards: [...cards, res] }); }) .catch(err => { setLoading(false); console.log(err); setError(err.data); }); }; const makeProps = (name) => ({ name: name, onChange: handleChange, value: input[name] || '', error: error[name], }); const statusOptions = [ { key: '0', text: 'Card Active', value: 'card_active' }, { key: '1', text: 'Card Blocked', value: 'card_blocked' }, { key: '2', text: 'Card Inactive', value: 'card_inactive' }, { key: '3', text: 'Card Member Blocked', value: 'card_member_blocked' }, ]; return (
Edit Member Cards
Add a Card
{success &&

Success!

} Submit
Current Cards
{cards.length ? cards.map((x, i) => ) :

None

}
); }; export function AdminMemberForm(props) { const [input, setInput] = useState(props.result.member); const [error, setError] = useState(false); const [loading, setLoading] = useState(false); const [success, setSuccess] = useState(false); const { id } = useParams(); const handleValues = (e, v) => setInput({ ...input, [v.name]: v.value }); const handleUpload = (e, v) => setInput({ ...input, [v.name]: e.target.files[0] }); const handleChange = (e) => handleValues(e, e.currentTarget); const handleCheck = (e, v) => setInput({ ...input, [v.name]: v.checked }); const handleSubmit = (e) => { setLoading(true); setSuccess(false); requester('/members/' + id + '/', 'PATCH', props.token, input) .then(res => { setLoading(false); setSuccess(true); setError(false); props.setResult({ ...props.result, member: res }); }) .catch(err => { setLoading(false); console.log(err); setError(err.data); }); }; const makeProps = (name) => ({ name: name, onChange: handleChange, value: input[name] || '', error: error[name], }); return (
Edit Member Details
{success &&

Success!

} Submit
); }; export function AdminMemberInfo(props) { const member = props.result.member; return (
Admin Details
Name: {member.first_name} {member.last_name} Status: {member.status} Phone: {member.phone} Address: {member.street_address} City: {member.city} Postal: {member.postal_code} Minor: {member.is_minor ? 'Yes' : 'No'} {member.is_minor && Birthdate: {member.birthdate} } {member.is_minor && Guardian: {member.guardian_name} } Emergency Contact Name: {member.emergency_contact_name || 'None'} Emergency Contact Phone: {member.emergency_contact_phone || 'None'}
); };