import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import MenuItem from '@material-ui/core/MenuItem';
import TextField from '@material-ui/core/TextField';
import Select from '@material-ui/core/Select';
import { Button } from '@material-ui/core'
import { FormControl, Input, InputLabel, FormHelperText } from '@material-ui/core'
const styles = theme => ({
container: {
display: 'inline',
},
textField: {
marginLeft: theme.spacing.unit,
marginRight: theme.spacing.unit,
display: 'inline-block',
width: 200,
},
dense: {
marginTop: 19,
},
menu: {
width: 200,
},
fullWidth: {
width: '100%'
},
blackText: {
color: 'black'
},
floatLeft: {
float: 'left',
display: 'inline'
}
});
const cats = [
'Cool Cat',
'Bad Kitty',
'King of the Jungle',
'Incel cat',
'C-ch-at-d',
'Sabretooth Bro',
'Higher order being',
'Decadent feline',
'Trapped in the litter box',
'All claw and no meow'
]
const MakeAttendees = (attendees) => {
const items = []
for (let i = 0; i < attendees.length; i++) {
items.push(
{i+1}:
Name: {attendees[i].name}
Type: {attendees[i].cat ? attendees[i].cat : 'Incel, for sure'}
Lonely: {attendees[i].guest ? 'Probably' : 'Very!'}
)
}
return ({items}
)
}
class TextFields extends React.Component {
constructor (props) {
super(props)
this.state = {
name: 'The Grinch',
cat: '',
significantOther: false,
attendees: undefined
}
}
async componentDidMount () {
this.setState({
attendees: MakeAttendees(await this.fetchAttendees())
})
}
handleChange = name => event => {
this.setState({
[name]: event.target.value,
});
};
handleFoodSelect = (event) => {
this.setState({cat: event.target.value})
}
handleSignificantOther = () => {
this.setState({significantOther: !this.state.significantOther})
}
Cats = () => {
const items = []
for (let i = 0; i < cats.length; i++) {
items.push()
}
return items
}
submitForm = async () => {
console.log(this.state)
const body = JSON.stringify({
name: this.state.name,
cat: this.state.cat,
guest: this.state.significantOther,
})
const response = await fetch('http://localhost:3002/attendee', {
method: 'post',
body: body,
headers: new Headers({
'Content-Type': 'application/json'
})
})
if (!response.error) {
console.log('Success')
this.setState({attendees: MakeAttendees(await this.fetchAttendees())})
}
}
fetchAttendees = async () => {
let attendees
await fetch('http://localhost:3002/list', {
method: 'get',
}).then(data => {
data.json().then(finalData => {
attendees = finalData.attendees
})
})
return attendees
}
updateAttendees = async () => {
this.setState({ attendees: MakeAttendees(await this.fetchAttendees())})
}
render() {
const { classes } = this.props;
return (
Such lovely people, these:
{this.state.attendees}
);
}
}
TextFields.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(TextFields);