Merge branch 'master' into galleryRedo2

This commit is contained in:
Al Duncanson
2018-12-06 10:01:39 -05:00
109 changed files with 414 additions and 221 deletions

View File

@@ -1,6 +1,7 @@
import React, { Component } from 'react';
import Main from './components/Main';
import './App.css';
import './css/App.css';
import { CookiesProvider } from 'react-cookie';
class App extends Component {
componentDidMount() {
@@ -9,11 +10,13 @@ class App extends Component {
render() {
return (
<div>
<Main/>
</div>
<CookiesProvider>
<div>
<Main />
</div>
</CookiesProvider>
);
}
}
export default App;
export default App;

View File

@@ -1,5 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
import PropTypes, { instanceOf } from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Drawer from '@material-ui/core/Drawer';
import AppBar from '@material-ui/core/AppBar';
@@ -32,7 +32,10 @@ import CssBaseline from '@material-ui/core/CssBaseline';
import ExpandLess from '@material-ui/icons/ExpandLess';
import ExpandMore from '@material-ui/icons/ExpandMore';
import Collapse from '@material-ui/core/Collapse';
import FlameLinkCollectionGallery from '../components/FlameLinkCollectionGallery';
import FlameLinkCollectionGallery from '../components/flamelink/FlameLinkCollectionGallery';
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
import Switch from '@material-ui/core/Switch';
import { withCookies, Cookies } from 'react-cookie';
const drawerWidth = 240;
@@ -72,23 +75,71 @@ const styles = theme => ({
});
class ResponsiveDrawer extends React.Component {
state = {
mobileOpen: false,
key: 'Home',
open: false,
open2: false,
};
componentWillMount() {
const { cookies } = this.props;
var newName, newTheme, newChecked;
if (cookies.get('themeName') === undefined) {
newName = 'light'
newTheme = createMuiTheme({
typography: {
useNextVariants: true,
},
palette: {
type: 'light'
}
});
newChecked = true;
cookies.set('themeName', newName, { path: '/' });
} else {
if (cookies.get('themeName') === 'light') {
newName = 'light'
newTheme = createMuiTheme({
typography: {
useNextVariants: true,
},
palette: {
type: 'light'
}
});
newChecked = true;
} else {
newName = 'dark'
newTheme = createMuiTheme({
typography: {
useNextVariants: true,
},
palette: {
type: 'dark'
}
});
newChecked = false;
}
}
this.setState({
mobileOpen: false,
key: 'Home',
open: false,
open2: false,
theme: newTheme,
themeName: newName,
themeChecked: newChecked
});
}
handleDrawerToggle = () => {
this.setState(state => ({ mobileOpen: !state.mobileOpen }));
}
handleClick = () => {
this.setState(state => ({ open: !state.open }));
this.setState(state => ({ open: !state.open, open2: false }));
}
handleClick2 = () => {
this.setState(state => ({ open2: !state.open2 }));
this.setState(state => ({ open2: !state.open2, open: false }));
}
nav = (text) => {
@@ -97,11 +148,50 @@ class ResponsiveDrawer extends React.Component {
});
}
handleChange = name => event => {
const { cookies } = this.props;
this.setState({ [name]: event.target.checked });
var newTheme, newName;
if (this.state.themeName === 'light') {
newTheme = createMuiTheme({
typography: {
useNextVariants: true,
},
palette: {
type: 'dark'
}
});
newName = 'dark';
} else {
newTheme = createMuiTheme({
typography: {
useNextVariants: true,
},
palette: {
type: 'light'
}
});
newName = 'light';
}
this.setState({
themeName: newName,
theme: newTheme
})
cookies.set('themeName', newName, { path: '/' });
};
render() {
const { classes, theme } = this.props;
const { classes } = this.props;
const drawer = (
<div>
<Typography component="div">
<div className={classes.toolbar} />
<Divider />
<List>
@@ -174,84 +264,91 @@ class ResponsiveDrawer extends React.Component {
</Collapse>
</List>
<Divider />
</div>
</Typography>
);
return (
<div className={classes.root}>
<CssBaseline />
<AppBar position="fixed" className={classes.appBar}>
<Toolbar>
<IconButton
color="inherit"
aria-label="Open drawer"
onClick={this.handleDrawerToggle}
className={classes.menuButton}
>
<MenuIcon />
</IconButton>
<Typography variant="title" color="inherit" noWrap>
Marten Tracker
</Typography>
</Toolbar>
</AppBar>
<nav className={classes.drawer}>
<Hidden smUp implementation="css">
<Drawer
container={this.props.container}
variant="temporary"
anchor={theme.direction === 'rtl' ? 'right' : 'left'}
open={this.state.mobileOpen}
onClose={this.handleDrawerToggle}
classes={{
paper: classes.drawerPaper,
}}
ModalProps={{
keepMounted: true, // Better open performance on mobile.
}}
>
{drawer}
</Drawer>
</Hidden>
<Hidden xsDown implementation="css">
<Drawer
classes={{
paper: classes.drawerPaper,
}}
variant="permanent"
open
>
{drawer}
</Drawer>
</Hidden>
</nav>
<main className={classes.content}>
<div className={classes.toolbar} />
{this.state.key === 'Home' && <Home />}
{this.state.key === 'Report' && <Report />}
{this.state.key === 'Map' && <ViewMap />}
{this.state.key === 'List' && <SightingList />}
{this.state.key === 'About' && <About />}
{this.state.key === 'Contact' && <Contact />}
{this.state.key === 'Easy-Quiz' && <Quiz difficulty='Easy'/>}
{this.state.key === 'Intermediate-Quiz' && <Quiz difficulty='Intermediate'/>}
{this.state.key === 'Advanced-Quiz' && <Quiz difficulty='Advanced'/>}
{this.state.key === 'Gallery1' && <FlameLinkCollectionGallery galleryName={'martensAndKits'}/>}
{this.state.key === 'Gallery2' && <FlameLinkCollectionGallery galleryName={'martensAtNight'}/>}
{this.state.key === 'Gallery3' && <FlameLinkCollectionGallery galleryName={'martensBeingMartens'}/>}
{this.state.key === 'Gallery4' && <FlameLinkCollectionGallery galleryName={'similarSpecies'}/>}
</main>
</div>
<MuiThemeProvider theme={this.state.theme}>
<div className={classes.root}>
<CssBaseline />
<AppBar position="fixed" color="primary" className={classes.appBar}>
<Toolbar>
<IconButton
color="inherit"
aria-label="Open drawer"
onClick={this.handleDrawerToggle}
className={classes.menuButton}
>
<MenuIcon />
</IconButton>
<Typography variant="title" color="inherit" noWrap>
Marten Tracker
</Typography>
<Switch
checked={this.state.themeChecked}
onChange={this.handleChange('themeChecked')}
value="themeChecked"
color="default"
/>
</Toolbar>
</AppBar>
<nav className={classes.drawer}>
<Hidden smUp implementation="css">
<Drawer
container={this.props.container}
variant="temporary"
anchor={this.state.theme.direction === 'rtl' ? 'right' : 'left'}
open={this.state.mobileOpen}
onClose={this.handleDrawerToggle}
classes={{
paper: classes.drawerPaper,
}}
ModalProps={{
keepMounted: true, // Better open performance on mobile.
}}
>
{drawer}
</Drawer>
</Hidden>
<Hidden xsDown implementation="css">
<Drawer
classes={{
paper: classes.drawerPaper,
}}
variant="permanent"
open
>
{drawer}
</Drawer>
</Hidden>
</nav>
<main className={classes.content}>
<div className={classes.toolbar} />
{this.state.key === 'Home' && <Home />}
{this.state.key === 'Report' && <Report />}
{this.state.key === 'Map' && <ViewMap />}
{this.state.key === 'List' && <SightingList themeName={this.state.themeName} />}
{this.state.key === 'About' && <About />}
{this.state.key === 'Contact' && <Contact />}
{this.state.key === 'Easy-Quiz' && <Quiz difficulty='Easy' />}
{this.state.key === 'Intermediate-Quiz' && <Quiz difficulty='Intermediate' />}
{this.state.key === 'Advanced-Quiz' && <Quiz difficulty='Advanced' />}
{this.state.key === 'Gallery1' && <FlameLinkCollectionGallery galleryName={'martensAndKits'} />}
{this.state.key === 'Gallery2' && <FlameLinkCollectionGallery galleryName={'martensAtNight'} />}
{this.state.key === 'Gallery3' && <FlameLinkCollectionGallery galleryName={'martensBeingMartens'} />}
{this.state.key === 'Gallery4' && <FlameLinkCollectionGallery galleryName={'similarSpecies'} />}
</main>
</div>
</MuiThemeProvider>
);
}
}
ResponsiveDrawer.propTypes = {
classes: PropTypes.object.isRequired,
// Injected by the documentation to work in an iframe.
// You won't need it on your project.
container: PropTypes.object,
theme: PropTypes.object.isRequired,
cookies: instanceOf(Cookies).isRequired,
};
export default withStyles(styles, { withTheme: true })(ResponsiveDrawer);
export default withStyles(styles, { withTheme: true })(withCookies(ResponsiveDrawer));

View File

@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
import { Map, InfoWindow, Marker, GoogleApiWrapper } from 'google-maps-react';
import moment from 'moment';
import Typography from '@material-ui/core/Typography';
import firebase from '../firebase.js';
import firebase from '../utilities/firebase.js';
// Google Maps API Key
const API_KEY = 'AIzaSyAZ_0J01bA6wCbIPK4UBq2RUBC-hIqG4mM';
@@ -216,22 +216,22 @@ export class MapContainer extends Component {
switch(type) {
case 'visual':
pinIcon = '/mapicons/marten-icon.png';
pinIcon = '/map-icons/marten-icon.png';
break;
case 'roadkill':
pinIcon = '/mapicons/tire-icon.png';
pinIcon = '/map-icons/tire-icon.png';
break;
case 'viewed_tracks':
pinIcon = '/mapicons/paws.png';
pinIcon = '/map-icons/paws.png';
break;
case 'trapped':
pinIcon = '/mapicons/cage.png';
pinIcon = '/map-icons/cage.png';
break;
case 'photo':
pinIcon = '/mapicons/photo-icon.png';
pinIcon = '/map-icons/photo-icon.png';
break;
case 'other':
pinIcon = '/mapicons/other-icon.png';
pinIcon = '/map-icons/other-icon.png';
break;
default:
break;

View File

@@ -1,5 +1,5 @@
import React, { Component} from 'react';
import flamelinkApp from '../flamelink.js';
import flamelinkApp from '../../utilities/flamelink.js';
import FlameLinkCollectionComponentCreations from './FlameLinkCollectionComponentCreations';
class FlameLinkCollection extends Component {

View File

@@ -3,10 +3,10 @@ import Typography from '@material-ui/core/Typography';
import Grid from '@material-ui/core/Grid';
import { withStyles } from '@material-ui/core/styles';
import RenderGallery from './RenderGallery';
import flamelinkApp from '../flamelink.js';
import flamelinkApp from '../../utilities/flamelink.js';
import FlameLinkCollectionGalleryContent from './FlameLinkCollectionGalleryContent';
import "react-image-gallery/styles/css/image-gallery.css";
import '../css/FlameLink.css';
import '../../css/FlameLink.css';
const styles = theme => ({
flamelinkItem: {

View File

@@ -1,6 +1,6 @@
import { Component } from 'react';
import flamelinkApp from '../flamelink.js';
import '../css/FlameLink.css';
import flamelinkApp from '../../utilities/flamelink.js';
import '../../css/FlameLink.css';
class FlameLinkCollectionGalleryContent extends Component {
constructor(props) {

View File

@@ -2,7 +2,7 @@ import React, { Component} from 'react';
import Grid from '@material-ui/core/Grid';
import Typography from '@material-ui/core/Typography';
import { withStyles } from '@material-ui/core/styles';
import flamelinkApp from '../flamelink.js';
import flamelinkApp from '../../utilities/flamelink.js';
import FlameLinkImage from './FlameLinkImage';
import FlameLinkFieldSet from './FlameLinkFieldSet';

View File

@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import Typography from '@material-ui/core/Typography';
import flamelinkApp from '../flamelink.js';
import '../css/FlameLink.css';
import flamelinkApp from '../../utilities/flamelink.js';
import '../../css/FlameLink.css';
class FlameLinkImage extends Component {
constructor() {

View File

@@ -2,7 +2,7 @@ import React, { Component} from 'react';
import Grid from '@material-ui/core/Grid';
import Typography from '@material-ui/core/Typography';
import { withStyles } from '@material-ui/core/styles';
import flamelinkApp from '../flamelink.js';
import flamelinkApp from '../../utilities/flamelink.js';
import FlameLinkImage from './FlameLinkImage';
import FlameLinkFieldSet from './FlameLinkFieldSet';

View File

@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import ImageGallery from 'react-image-gallery';
import "react-image-gallery/styles/css/image-gallery.css";
import '../css/FlameLink.css';
import '../../css/FlameLink.css';
class RenderGallery extends Component {
constructor() {

View File

@@ -1,7 +1,7 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import Grid from '@material-ui/core/Grid';
import emailjs from '../emailjs.js'
import emailjs from '../../utilities/emailjs.js'
import { withStyles } from '@material-ui/core/styles';
import TextField from '@material-ui/core/TextField';
import CheckCircleIcon from '@material-ui/icons/CheckCircle';

View File

@@ -9,8 +9,8 @@ import Snackbar from '@material-ui/core/Snackbar';
import IconButton from '@material-ui/core/IconButton';
import CloseIcon from '@material-ui/icons/Close';
import Button from '@material-ui/core/Button';
import firebase from '../firebase.js';
import GoogleMap from '../components/ReportMap';
import firebase from '../../utilities/firebase.js';
import GoogleMap from './ReportMap';
import Modal from '@material-ui/core/Modal';
import Typography from '@material-ui/core/Typography';

View File

@@ -2,13 +2,19 @@ import React, { Component, Fragment } from 'react';
import Disqus from 'disqus-react';
import moment from 'moment';
import SightingDetailMap from './SightingDetailMap';
import Typography from '@material-ui/core/Typography';
import { withStyles } from '@material-ui/core/styles';
import PropTypes from 'prop-types';
const styles = theme => ({
});
/**
* Types of sightings. Label is what is
* viewed in the application, value is
* what is stored in the database.
*/
const sightingTypes = [
const sightingTypes = [
{
value: 'visual',
label: 'Visual',
@@ -143,18 +149,24 @@ class SightingDetail extends Component {
return (
<Fragment>
<SightingDetailMap lat={this.props.detail.lat} lng={this.props.detail.lng} />
<Typography component="div">
<div className='sighting-details-content'>
<p><b>Type:</b> {this.getType(this.props.detail.type)}</p>
<p><b>When:</b> {this.formatDate(this.props.detail.date)}, {this.getTime(this.props.detail.time)}</p>
<p><b>Where:</b> {this.props.detail.lat} degrees N, and {this.props.detail.lng} degrees E</p>
<p><b>I am confident of my sighting:</b> {this.getConfidence(this.props.detail.confidence)}</p>
<hr/>
<hr />
<p>{`${this.props.detail.desc}`}</p>
</div>
<Disqus.DiscussionEmbed shortname={disqusShortname} config={disqusConfig} />
<Disqus.DiscussionEmbed shortname={disqusShortname} config={disqusConfig} />
</Typography>
</Fragment>
);
}
}
export default SightingDetail;
SightingDetail.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(SightingDetail);

View File

@@ -1,6 +1,6 @@
import React, { Component, Fragment } from 'react';
import Grid from '@material-ui/core/Grid';
import firebase from '../firebase.js';
import firebase from '../../utilities/firebase.js';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
@@ -64,6 +64,24 @@ class ViewSightings extends Component {
clicked: false
};
componentDidUpdate(props) {
if (this.props.themeName !== props.themeName) {
this.setState({
selectedSighting: {
id: null,
lat: null,
lng: null,
desc: null,
type: null,
confidence: null,
date: null,
time: null
},
clicked: false
});
}
}
render() {
return (
<Fragment>
@@ -71,20 +89,20 @@ class ViewSightings extends Component {
<Grid item xs={12} md={6} className='sighting-list'>
<Fragment>
<List>
{
this.state.sightings.map((sighting) => {
return (
<ListItem button key={ sighting.id } onClick={() => this.getDetail(sighting.id, sighting.lat, sighting.lng, sighting.desc, sighting.type, sighting.confidence, sighting.date, sighting.time)}>
<ListItemText primary={`${sighting.desc}`}/>
</ListItem>
);
})
}
{
this.state.sightings.map((sighting) => {
return (
<ListItem button key={sighting.id} onClick={() => this.getDetail(sighting.id, sighting.lat, sighting.lng, sighting.desc, sighting.type, sighting.confidence, sighting.date, sighting.time)}>
<ListItemText primary={`${sighting.desc}`} />
</ListItem>
);
})
}
</List>
</Fragment>
</Grid>
<Grid item xs={12} md={6} className='sighting-details'>
{this.state.clicked === true && <SightingDetail detail={ this.state.selectedSighting }/>}
{this.state.clicked === true && <SightingDetail detail={this.state.selectedSighting} />}
</Grid>
</Grid>
</Fragment>

View File

@@ -20,6 +20,13 @@ body {
margin: 0 auto;
}
#disqus_thread a,
.comments .nav ul li a,
.comments .nav ul li div a
{
color: #7986cb
}
.sighting-list {
height: calc(50vh - 64px);
overflow-y: scroll;

View File

@@ -1,5 +0,0 @@
import * as emailjs from 'emailjs-com'
emailjs.init("user_4d5R86dmu6vgeJP4euxSA");
export default emailjs;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -1,7 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import './css/index.css';
import App from './App.js';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App/>, document.getElementById('root'));

View File

@@ -1,6 +1,6 @@
import React, { Component, Fragment } from 'react';
import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations';
import flamelinkApp from '../flamelink.js';
import FlameLinkComponentCreations from '../components/flamelink/FlameLinkComponentCreations';
import flamelinkApp from '../utilities/flamelink.js';
class About extends Component {
constructor() {

View File

@@ -1,5 +1,5 @@
import React, { Component } from 'react';
import ContactForm from '../components/ContactForm.js'
import ContactForm from '../components/forms/ContactForm.js'
class Contact extends Component {
componentDidMount() {

View File

@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations';
import FlameLinkCollectionGallery from '../components/FlameLinkCollectionGallery';
import flamelinkApp from '../flamelink';
import FlameLinkComponentCreations from '../components/flamelink/FlameLinkComponentCreations';
import FlameLinkCollectionGallery from '../components/flamelink/FlameLinkCollectionGallery';
import flamelinkApp from '../utilities/flamelink';
import Grid from '@material-ui/core/Grid';
class Home extends Component {

View File

@@ -1,5 +1,5 @@
import React, { Component, Fragment } from 'react';
import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations';
import FlameLinkComponentCreations from '../components/flamelink/FlameLinkComponentCreations';
import flamelinkApp from '../flamelink.js';
class Info extends Component {

View File

@@ -1,5 +1,5 @@
import React, { Component } from 'react';
import ReportForm from '../components/ReportForm';
import ReportForm from '../components/forms/ReportForm';
class Report extends Component {
componentDidMount() {

View File

@@ -1,5 +1,5 @@
import React, { Component } from 'react';
import ViewSightings from '../components/ViewSightings.js';
import ViewSightings from '../components/list/ViewSightings.js';
class Sighting extends Component {
componentDidMount() {
@@ -8,7 +8,7 @@ class Sighting extends Component {
render() {
return (
<ViewSightings/>
<ViewSightings themeName={this.props.themeName}/>
);
}
}

View File

@@ -4,7 +4,7 @@ const advancedQuiz = {
"quizTitle": "Trail Cam Quiz: Advanced",
"questions": [
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question1.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question1.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -15,7 +15,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question2.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question2.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -26,7 +26,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question3.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question3.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -37,7 +37,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question4.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question4.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Robin",
@@ -48,7 +48,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What is in the marten's mouth?<br /><br /><img src="/quizimages/advanced/question5.jpg" alt=""></img></Fragment>,
"question": <Fragment>What is in the marten's mouth?<br /><br /><img src="/quiz-images/advanced/question5.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Woodcock",
@@ -59,7 +59,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question6.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question6.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Black bear",
@@ -70,7 +70,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question7.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question7.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Black bear",
@@ -81,7 +81,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question8.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question8.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Coyote",
@@ -92,7 +92,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question9.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question9.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -103,7 +103,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question10.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question10.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -114,7 +114,7 @@ const advancedQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question11.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question11.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -125,7 +125,7 @@ const advancedQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question12.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question12.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -136,7 +136,7 @@ const advancedQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question13.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question13.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Hermit Thrush",
@@ -147,7 +147,7 @@ const advancedQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question14.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question14.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American beaver",
@@ -158,7 +158,7 @@ const advancedQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question15.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question15.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -169,7 +169,7 @@ const advancedQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question16.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question16.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern fox squirrel",
@@ -180,7 +180,7 @@ const advancedQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question17.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question17.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Woodcock",
@@ -191,7 +191,7 @@ const advancedQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question18.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question18.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern fox squirrel",
@@ -202,7 +202,7 @@ const advancedQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/advanced/question19.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/advanced/question19.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"House mouse",
@@ -213,7 +213,7 @@ const advancedQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What is in the marten's mouth?<br /><br /><img src="/quizimages/advanced/question20.jpg" alt=""></img></Fragment>,
"question": <Fragment>What is in the marten's mouth?<br /><br /><img src="/quiz-images/advanced/question20.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",

View File

@@ -4,7 +4,7 @@ const easyQuiz = {
"quizTitle": "Trail Cam Quiz: Easy",
"questions": [
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question1.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question1.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Black bear",
@@ -15,7 +15,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question2.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question2.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American beaver",
@@ -26,7 +26,7 @@ const easyQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question3.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question3.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -37,7 +37,7 @@ const easyQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question4.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question4.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern fox squirrel",
@@ -48,7 +48,7 @@ const easyQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question5.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question5.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Crow",
@@ -59,7 +59,7 @@ const easyQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question6.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question6.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -70,7 +70,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question7.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question7.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -81,7 +81,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question8.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question8.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Robin",
@@ -92,7 +92,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question9.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question9.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Black bear",
@@ -103,7 +103,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question10.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question10.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Bobcat",
@@ -114,7 +114,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question11.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question11.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Coyote",
@@ -125,7 +125,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question12.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question12.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -136,7 +136,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question13.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question13.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -147,7 +147,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question14.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question14.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Raccoon",
@@ -158,7 +158,7 @@ const easyQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question15.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question15.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American beaver",
@@ -169,7 +169,7 @@ const easyQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question16.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question16.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -180,7 +180,7 @@ const easyQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question17.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question17.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -191,7 +191,7 @@ const easyQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question18.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question18.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Elk",
@@ -202,7 +202,7 @@ const easyQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question19.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question19.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Elk",
@@ -213,7 +213,7 @@ const easyQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/easy/question20.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/easy/question20.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Elk",

View File

@@ -4,7 +4,7 @@ const intermediateQuiz = {
"quizTitle": "Trail Cam Quiz: Intermediate",
"questions": [
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question1.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question1.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -15,7 +15,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question2.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question2.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -26,7 +26,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question3.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question3.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -37,7 +37,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question4.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question4.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American marten",
@@ -48,7 +48,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question5.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question5.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Robin",
@@ -59,7 +59,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question6.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question6.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Black bear",
@@ -70,7 +70,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question7.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question7.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Bobcat",
@@ -81,7 +81,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question8.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question8.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Bobcat",
@@ -92,7 +92,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question9.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question9.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Crow",
@@ -103,7 +103,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question10.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question10.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Coyote",
@@ -114,7 +114,7 @@ const intermediateQuiz = {
"correctAnswer": "1"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question11.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question11.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -125,7 +125,7 @@ const intermediateQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question12.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question12.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -136,7 +136,7 @@ const intermediateQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question13.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question13.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American beaver",
@@ -147,7 +147,7 @@ const intermediateQuiz = {
"correctAnswer": "3"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question14.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question14.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -158,7 +158,7 @@ const intermediateQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question15.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question15.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American badger",
@@ -169,7 +169,7 @@ const intermediateQuiz = {
"correctAnswer": "2"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question16.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question16.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Coyote",
@@ -180,7 +180,7 @@ const intermediateQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question17.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question17.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern fox squirrel",
@@ -191,7 +191,7 @@ const intermediateQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question18.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question18.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Eastern chipmunk",
@@ -202,7 +202,7 @@ const intermediateQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question19.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question19.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"American Woodcock",
@@ -213,7 +213,7 @@ const intermediateQuiz = {
"correctAnswer": "4"
},
{
"question": <Fragment>What animal is this?<br /><br /><img src="/quizimages/intermediate/question20.jpg" alt=""></img></Fragment>,
"question": <Fragment>What animal is this?<br /><br /><img src="/quiz-images/intermediate/question20.jpg" alt=""></img></Fragment>,
"questionType": "text",
"answers": [
"Elk",

5
src/utilities/emailjs.js Normal file
View File

@@ -0,0 +1,5 @@
import * as emailjs from 'emailjs-com';
emailjs.init("user_4d5R86dmu6vgeJP4euxSA");
export default emailjs;