Updated report form to sponsor's specifications.
This commit is contained in:
		
							parent
							
								
									a7ca249d1e
								
							
						
					
					
						commit
						9296eb6e7b
					
				@ -1,4 +1,4 @@
 | 
				
			|||||||
import React, {Fragment} from 'react';
 | 
					import React, { Fragment } from 'react';
 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import Grid from '@material-ui/core/Grid';
 | 
					import Grid from '@material-ui/core/Grid';
 | 
				
			||||||
import { withStyles } from '@material-ui/core/styles';
 | 
					import { withStyles } from '@material-ui/core/styles';
 | 
				
			||||||
@ -46,16 +46,11 @@ const styles = theme => ({
 | 
				
			|||||||
 * this string in the database.
 | 
					 * this string in the database.
 | 
				
			||||||
 * @param {*} date, Date passed in. 
 | 
					 * @param {*} date, Date passed in. 
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function formatDate(date) {
 | 
					function getYear(date) {
 | 
				
			||||||
    var d = new Date(date),
 | 
					  var d = new Date(date),
 | 
				
			||||||
        month = '' + (d.getMonth() + 1),
 | 
					    year = d.getFullYear();
 | 
				
			||||||
        day = '' + d.getDate(),
 | 
					 | 
				
			||||||
        year = d.getFullYear();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (month.length < 2) month = '0' + month;
 | 
					  return year;
 | 
				
			||||||
    if (day.length < 2) day = '0' + day;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return [year, month, day].join('-');
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 
 | 
					/** 
 | 
				
			||||||
@ -90,33 +85,117 @@ const sightingTypes = [
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** 
 | 
				
			||||||
 | 
					 * Types of sightings. Label is what is
 | 
				
			||||||
 | 
					 * viewed in the application, value is
 | 
				
			||||||
 | 
					 * what is stored in the database.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					const monthTypes = [
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '01',
 | 
				
			||||||
 | 
					    label: 'January',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '02',
 | 
				
			||||||
 | 
					    label: 'February',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '03',
 | 
				
			||||||
 | 
					    label: 'March',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '04',
 | 
				
			||||||
 | 
					    label: 'April',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '05',
 | 
				
			||||||
 | 
					    label: 'May',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '06',
 | 
				
			||||||
 | 
					    label: 'June',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '07',
 | 
				
			||||||
 | 
					    label: 'July',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '08',
 | 
				
			||||||
 | 
					    label: 'August',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '09',
 | 
				
			||||||
 | 
					    label: 'September',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '10',
 | 
				
			||||||
 | 
					    label: 'October',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '11',
 | 
				
			||||||
 | 
					    label: 'November',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: '12',
 | 
				
			||||||
 | 
					    label: 'December',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** 
 | 
				
			||||||
 | 
					 * Types of sightings. Label is what is
 | 
				
			||||||
 | 
					 * viewed in the application, value is
 | 
				
			||||||
 | 
					 * what is stored in the database.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					const timeTypes = [
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 'morning',
 | 
				
			||||||
 | 
					    label: 'Morning',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 'midday',
 | 
				
			||||||
 | 
					    label: 'Midday',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 'evening',
 | 
				
			||||||
 | 
					    label: 'Evening',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 'night',
 | 
				
			||||||
 | 
					    label: 'Night',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 'unknown',
 | 
				
			||||||
 | 
					    label: 'Unknown',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 
 | 
					/** 
 | 
				
			||||||
 * Levels of confidence. Label is what is
 | 
					 * Levels of confidence. Label is what is
 | 
				
			||||||
 * viewed in the application, value is
 | 
					 * viewed in the application, value is
 | 
				
			||||||
 * what is stored in the database.
 | 
					 * what is stored in the database.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
const confidenceLevels = [
 | 
					const confidenceLevels = [
 | 
				
			||||||
    {
 | 
					  {
 | 
				
			||||||
      value: '1',
 | 
					    value: '1',
 | 
				
			||||||
      label: '1 - Strongly unconfident',
 | 
					    label: '1 - Strongly unconfident',
 | 
				
			||||||
    },
 | 
					  },
 | 
				
			||||||
    {
 | 
					  {
 | 
				
			||||||
      value: '2',
 | 
					    value: '2',
 | 
				
			||||||
      label: '2 - Unconfident',
 | 
					    label: '2 - Unconfident',
 | 
				
			||||||
    },
 | 
					  },
 | 
				
			||||||
    {
 | 
					  {
 | 
				
			||||||
      value: '3',
 | 
					    value: '3',
 | 
				
			||||||
      label: '3 - Somewhat confident',
 | 
					    label: '3 - Somewhat confident',
 | 
				
			||||||
    },
 | 
					  },
 | 
				
			||||||
    {
 | 
					  {
 | 
				
			||||||
      value: '4',
 | 
					    value: '4',
 | 
				
			||||||
      label: '4 - Confident',
 | 
					    label: '4 - Confident',
 | 
				
			||||||
    },
 | 
					  },
 | 
				
			||||||
    {
 | 
					  {
 | 
				
			||||||
      value: '5',
 | 
					    value: '5',
 | 
				
			||||||
      label: '5 - Very confident',
 | 
					    label: '5 - Very confident',
 | 
				
			||||||
    },
 | 
					  },
 | 
				
			||||||
  ];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * The form component.
 | 
					 * The form component.
 | 
				
			||||||
@ -136,8 +215,9 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
   * State of form components.
 | 
					   * State of form components.
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  state = {
 | 
					  state = {
 | 
				
			||||||
    date: formatDate(new Date()),
 | 
					    month: '01',
 | 
				
			||||||
    time: '00:00',
 | 
					    year: getYear(new Date()),
 | 
				
			||||||
 | 
					    time: 'morning',
 | 
				
			||||||
    type: 'visual',
 | 
					    type: 'visual',
 | 
				
			||||||
    confidence: '1',
 | 
					    confidence: '1',
 | 
				
			||||||
    desc: '',
 | 
					    desc: '',
 | 
				
			||||||
@ -159,13 +239,13 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
  * Get the coordinates 
 | 
					  * Get the coordinates 
 | 
				
			||||||
  * 
 | 
					  * 
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
 getCoordinates = (lat,lng) => {
 | 
					  getCoordinates = (lat, lng) => {
 | 
				
			||||||
    let latitude = lat;
 | 
					    let latitude = lat;
 | 
				
			||||||
    let longitude = lng;
 | 
					    let longitude = lng;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.setState({
 | 
					    this.setState({
 | 
				
			||||||
        lat: latitude,
 | 
					      lat: latitude,
 | 
				
			||||||
        lng: longitude
 | 
					      lng: longitude
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -181,7 +261,7 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
    const sighting = {
 | 
					    const sighting = {
 | 
				
			||||||
      type: this.state.type,
 | 
					      type: this.state.type,
 | 
				
			||||||
      confidence: this.state.confidence,
 | 
					      confidence: this.state.confidence,
 | 
				
			||||||
      date: this.state.date,
 | 
					      date:  this.state.year + '-' + this.state.month,
 | 
				
			||||||
      time: this.state.time,
 | 
					      time: this.state.time,
 | 
				
			||||||
      desc: this.state.desc,
 | 
					      desc: this.state.desc,
 | 
				
			||||||
      lat: this.state.lat,
 | 
					      lat: this.state.lat,
 | 
				
			||||||
@ -189,8 +269,9 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    sightingsRef.push(sighting);
 | 
					    sightingsRef.push(sighting);
 | 
				
			||||||
    this.setState({
 | 
					    this.setState({
 | 
				
			||||||
      date: formatDate(new Date()),
 | 
					      year: getYear(new Date()),
 | 
				
			||||||
      time: '00:00',
 | 
					      month: '01',
 | 
				
			||||||
 | 
					      time: 'morning',
 | 
				
			||||||
      type: 'visual',
 | 
					      type: 'visual',
 | 
				
			||||||
      confidence: '1',
 | 
					      confidence: '1',
 | 
				
			||||||
      desc: '',
 | 
					      desc: '',
 | 
				
			||||||
@ -198,7 +279,7 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
      lng: ''
 | 
					      lng: ''
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * The render method for this component.
 | 
					   * The render method for this component.
 | 
				
			||||||
@ -210,129 +291,161 @@ class ReportForm extends React.Component {
 | 
				
			|||||||
     * The actual form.
 | 
					     * The actual form.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <Fragment>
 | 
					      <Fragment>
 | 
				
			||||||
            <form className={classes.container} autoComplete="off" onSubmit={this.handleSubmit}>
 | 
					        <form className={classes.container} autoComplete="off" onSubmit={this.handleSubmit}>
 | 
				
			||||||
                <Grid container>
 | 
					          <Grid container>
 | 
				
			||||||
                    <Grid item xs={6}>
 | 
					            <Grid item xs={6}>
 | 
				
			||||||
                        <Grid container spacing={8}>
 | 
					              <Grid container spacing={8}>
 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
                                <TextField
 | 
					                  <TextField
 | 
				
			||||||
                                id="select-sighting-type"
 | 
					                    id="select-sighting-type"
 | 
				
			||||||
                                select
 | 
					                    select
 | 
				
			||||||
                                required
 | 
					                    required
 | 
				
			||||||
                                name="sighting-type"
 | 
					                    name="sighting-type"
 | 
				
			||||||
                                label="Select"
 | 
					                    label="Select"
 | 
				
			||||||
                                className={classes.textField}
 | 
					                    className={classes.textField}
 | 
				
			||||||
                                value={this.state.type}
 | 
					                    value={this.state.type}
 | 
				
			||||||
                                onChange={this.handleChange('type')}
 | 
					                    onChange={this.handleChange('type')}
 | 
				
			||||||
                                SelectProps={{
 | 
					                    SelectProps={{
 | 
				
			||||||
                                    MenuProps: {
 | 
					                      MenuProps: {
 | 
				
			||||||
                                    className: classes.menu,
 | 
					                        className: classes.menu,
 | 
				
			||||||
                                    },
 | 
					                      },
 | 
				
			||||||
                                }}
 | 
					                    }}
 | 
				
			||||||
                                helperText="Please select type of sighting"
 | 
					                    helperText="Please select type of sighting"
 | 
				
			||||||
                                >
 | 
					                  >
 | 
				
			||||||
                                {sightingTypes.map(option => (
 | 
					                    {sightingTypes.map(option => (
 | 
				
			||||||
                                    <MenuItem key={option.value} value={option.value}>
 | 
					                      <MenuItem key={option.value} value={option.value}>
 | 
				
			||||||
                                    {option.label}
 | 
					                        {option.label}
 | 
				
			||||||
                                    </MenuItem>
 | 
					                      </MenuItem>
 | 
				
			||||||
                                ))}
 | 
					                    ))}
 | 
				
			||||||
                                </TextField>
 | 
					                  </TextField>
 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					 | 
				
			||||||
                                <TextField
 | 
					 | 
				
			||||||
                                id="select-confidence"
 | 
					 | 
				
			||||||
                                select
 | 
					 | 
				
			||||||
                                required
 | 
					 | 
				
			||||||
                                name="sighting-confidence"
 | 
					 | 
				
			||||||
                                label="Select"
 | 
					 | 
				
			||||||
                                className={classes.textField}
 | 
					 | 
				
			||||||
                                value={this.state.confidence}
 | 
					 | 
				
			||||||
                                onChange={this.handleChange('confidence')}
 | 
					 | 
				
			||||||
                                SelectProps={{
 | 
					 | 
				
			||||||
                                    MenuProps: {
 | 
					 | 
				
			||||||
                                    className: classes.menu,
 | 
					 | 
				
			||||||
                                    },
 | 
					 | 
				
			||||||
                                }}
 | 
					 | 
				
			||||||
                                helperText="Please select confidence in sighting"
 | 
					 | 
				
			||||||
                                >
 | 
					 | 
				
			||||||
                                {confidenceLevels.map(option => (
 | 
					 | 
				
			||||||
                                    <MenuItem key={option.value} value={option.value}>
 | 
					 | 
				
			||||||
                                    {option.label}
 | 
					 | 
				
			||||||
                                    </MenuItem>
 | 
					 | 
				
			||||||
                                ))}
 | 
					 | 
				
			||||||
                                </TextField>
 | 
					 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					 | 
				
			||||||
                                <TextField
 | 
					 | 
				
			||||||
                                    id="sighting-date"
 | 
					 | 
				
			||||||
                                    required
 | 
					 | 
				
			||||||
                                    label="Sighting date"
 | 
					 | 
				
			||||||
                                    name="sighting-date"
 | 
					 | 
				
			||||||
                                    type="date"
 | 
					 | 
				
			||||||
                                    value={this.state.date}
 | 
					 | 
				
			||||||
                                    className={classes.textField}
 | 
					 | 
				
			||||||
                                    onChange={this.handleChange('date')}
 | 
					 | 
				
			||||||
                                    InputLabelProps={{
 | 
					 | 
				
			||||||
                                    shrink: true,
 | 
					 | 
				
			||||||
                                    }}
 | 
					 | 
				
			||||||
                                />
 | 
					 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					 | 
				
			||||||
                                <TextField
 | 
					 | 
				
			||||||
                                    id="sighting-time"
 | 
					 | 
				
			||||||
                                    required
 | 
					 | 
				
			||||||
                                    label="Sighting time"
 | 
					 | 
				
			||||||
                                    name="sighting-time"
 | 
					 | 
				
			||||||
                                    type="time"
 | 
					 | 
				
			||||||
                                    margin="normal"
 | 
					 | 
				
			||||||
                                    value={this.state.time}
 | 
					 | 
				
			||||||
                                    className={classes.textField}
 | 
					 | 
				
			||||||
                                    onChange={this.handleChange('time')}
 | 
					 | 
				
			||||||
                                    InputLabelProps={{
 | 
					 | 
				
			||||||
                                    shrink: true,
 | 
					 | 
				
			||||||
                                    }}
 | 
					 | 
				
			||||||
                                />
 | 
					 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					 | 
				
			||||||
                                <TextField
 | 
					 | 
				
			||||||
                                id="sighting-description"
 | 
					 | 
				
			||||||
                                required
 | 
					 | 
				
			||||||
                                label="Description"
 | 
					 | 
				
			||||||
                                name="sighting-desc"
 | 
					 | 
				
			||||||
                                multiline
 | 
					 | 
				
			||||||
                                rows="5"
 | 
					 | 
				
			||||||
                                placeholder="Describe the sighting to the best of your ability."
 | 
					 | 
				
			||||||
                                value={this.state.desc}
 | 
					 | 
				
			||||||
                                className={classes.textField}
 | 
					 | 
				
			||||||
                                onChange={this.handleChange('desc')}
 | 
					 | 
				
			||||||
                                margin="normal"
 | 
					 | 
				
			||||||
                                variant="outlined"
 | 
					 | 
				
			||||||
                                InputLabelProps={{
 | 
					 | 
				
			||||||
                                    shrink: true,
 | 
					 | 
				
			||||||
                                }}
 | 
					 | 
				
			||||||
                                />
 | 
					 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
                            
 | 
					 | 
				
			||||||
                            <Grid item xs={12}>
 | 
					 | 
				
			||||||
                                <Button variant="contained" type="submit" color="primary" className={classes.button}>
 | 
					 | 
				
			||||||
                                    Submit
 | 
					 | 
				
			||||||
                                </Button>
 | 
					 | 
				
			||||||
                            </Grid>
 | 
					 | 
				
			||||||
                    </Grid>
 | 
					 | 
				
			||||||
                        </Grid>
 | 
					 | 
				
			||||||
                    <Grid item xs={6}>
 | 
					 | 
				
			||||||
                        <GoogleMap onClick={this.getCoordinates}/>
 | 
					 | 
				
			||||||
                    </Grid>
 | 
					 | 
				
			||||||
                </Grid>
 | 
					                </Grid>
 | 
				
			||||||
            </form>
 | 
					
 | 
				
			||||||
        </Fragment>
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <TextField
 | 
				
			||||||
 | 
					                    id="select-confidence"
 | 
				
			||||||
 | 
					                    select
 | 
				
			||||||
 | 
					                    required
 | 
				
			||||||
 | 
					                    name="sighting-confidence"
 | 
				
			||||||
 | 
					                    label="Select"
 | 
				
			||||||
 | 
					                    className={classes.textField}
 | 
				
			||||||
 | 
					                    value={this.state.confidence}
 | 
				
			||||||
 | 
					                    onChange={this.handleChange('confidence')}
 | 
				
			||||||
 | 
					                    SelectProps={{
 | 
				
			||||||
 | 
					                      MenuProps: {
 | 
				
			||||||
 | 
					                        className: classes.menu,
 | 
				
			||||||
 | 
					                      },
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                    helperText="Please select confidence in sighting"
 | 
				
			||||||
 | 
					                  >
 | 
				
			||||||
 | 
					                    {confidenceLevels.map(option => (
 | 
				
			||||||
 | 
					                      <MenuItem key={option.value} value={option.value}>
 | 
				
			||||||
 | 
					                        {option.label}
 | 
				
			||||||
 | 
					                      </MenuItem>
 | 
				
			||||||
 | 
					                    ))}
 | 
				
			||||||
 | 
					                  </TextField>
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <TextField
 | 
				
			||||||
 | 
					                    id="sighting-time"
 | 
				
			||||||
 | 
					                    select
 | 
				
			||||||
 | 
					                    required
 | 
				
			||||||
 | 
					                    label="Sighting time"
 | 
				
			||||||
 | 
					                    name="sighting-time"
 | 
				
			||||||
 | 
					                    className={classes.textField}
 | 
				
			||||||
 | 
					                    value={this.state.time}
 | 
				
			||||||
 | 
					                    onChange={this.handleChange('time')}
 | 
				
			||||||
 | 
					                    SelectProps={{
 | 
				
			||||||
 | 
					                      MenuProps: {
 | 
				
			||||||
 | 
					                        className: classes.menu,
 | 
				
			||||||
 | 
					                      },
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                  >
 | 
				
			||||||
 | 
					                    {timeTypes.map(option => (
 | 
				
			||||||
 | 
					                      <MenuItem key={option.value} value={option.value}>
 | 
				
			||||||
 | 
					                        {option.label}
 | 
				
			||||||
 | 
					                      </MenuItem>
 | 
				
			||||||
 | 
					                    ))}
 | 
				
			||||||
 | 
					                  </TextField>
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <TextField
 | 
				
			||||||
 | 
					                    id="sighting-month"
 | 
				
			||||||
 | 
					                    select
 | 
				
			||||||
 | 
					                    required
 | 
				
			||||||
 | 
					                    label="Sighting month"
 | 
				
			||||||
 | 
					                    name="sighting-month"
 | 
				
			||||||
 | 
					                    className={classes.textField}
 | 
				
			||||||
 | 
					                    value={this.state.month}
 | 
				
			||||||
 | 
					                    onChange={this.handleChange('month')}
 | 
				
			||||||
 | 
					                    SelectProps={{
 | 
				
			||||||
 | 
					                      MenuProps: {
 | 
				
			||||||
 | 
					                        className: classes.menu,
 | 
				
			||||||
 | 
					                      },
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                    helperText="Please select month of sighting"
 | 
				
			||||||
 | 
					                  >
 | 
				
			||||||
 | 
					                    {monthTypes.map(option => (
 | 
				
			||||||
 | 
					                      <MenuItem key={option.value} value={option.value}>
 | 
				
			||||||
 | 
					                        {option.label}
 | 
				
			||||||
 | 
					                      </MenuItem>
 | 
				
			||||||
 | 
					                    ))}
 | 
				
			||||||
 | 
					                  </TextField>
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <TextField
 | 
				
			||||||
 | 
					                    id="sighting-year"
 | 
				
			||||||
 | 
					                    required
 | 
				
			||||||
 | 
					                    label="Sighting year"
 | 
				
			||||||
 | 
					                    name="sighting-year"
 | 
				
			||||||
 | 
					                    value={this.state.year}
 | 
				
			||||||
 | 
					                    type="number"
 | 
				
			||||||
 | 
					                    className={classes.textField}
 | 
				
			||||||
 | 
					                    onChange={this.handleChange('year')}
 | 
				
			||||||
 | 
					                    InputLabelProps={{
 | 
				
			||||||
 | 
					                      shrink: true,
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <TextField
 | 
				
			||||||
 | 
					                    id="sighting-description"
 | 
				
			||||||
 | 
					                    required
 | 
				
			||||||
 | 
					                    label="Description"
 | 
				
			||||||
 | 
					                    name="sighting-desc"
 | 
				
			||||||
 | 
					                    multiline
 | 
				
			||||||
 | 
					                    rows="5"
 | 
				
			||||||
 | 
					                    placeholder="Describe the sighting to the best of your ability."
 | 
				
			||||||
 | 
					                    value={this.state.desc}
 | 
				
			||||||
 | 
					                    className={classes.textField}
 | 
				
			||||||
 | 
					                    onChange={this.handleChange('desc')}
 | 
				
			||||||
 | 
					                    margin="normal"
 | 
				
			||||||
 | 
					                    variant="outlined"
 | 
				
			||||||
 | 
					                    InputLabelProps={{
 | 
				
			||||||
 | 
					                      shrink: true,
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <Grid item xs={12}>
 | 
				
			||||||
 | 
					                  <Button variant="contained" type="submit" color="primary" className={classes.button}>
 | 
				
			||||||
 | 
					                    Submit
 | 
				
			||||||
 | 
					                                </Button>
 | 
				
			||||||
 | 
					                </Grid>
 | 
				
			||||||
 | 
					              </Grid>
 | 
				
			||||||
 | 
					            </Grid>
 | 
				
			||||||
 | 
					            <Grid item xs={6}>
 | 
				
			||||||
 | 
					              <GoogleMap onClick={this.getCoordinates} />
 | 
				
			||||||
 | 
					            </Grid>
 | 
				
			||||||
 | 
					          </Grid>
 | 
				
			||||||
 | 
					        </form>
 | 
				
			||||||
 | 
					      </Fragment>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }  
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ReportForm.propTypes = {
 | 
					ReportForm.propTypes = {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user