{"version":3,"sources":["components/NavMenu.js","components/Layout.js","components/Home.js","components/FetchData.js","components/Counter.js","components/vote/Contestant.js","components/vote/ListContestants2.js","components/vote/VoteResults.js","components/vote/ListContestants.js","App.js","registerServiceWorker.js","index.js"],"names":["NavMenu","props","toggleNavbar","bind","state","collapsed","this","setState","Navbar","className","light","Container","NavbarBrand","tag","Link","to","NavbarToggler","onClick","Collapse","isOpen","navbar","NavItem","NavLink","Component","displayName","name","Layout","style","paddingTop","children","Home","window","location","href","FetchData","forecasts","loading","populateWeatherData","contents","renderForecastsTable","id","fetch","response","json","data","aria-labelledby","map","forecast","key","date","temperatureC","temperatureF","summary","Counter","currentCount","incrementCounter","aria-live","contestant","src","photo","width","firstname","lastname","ListContestants","contestants","axios","get","then","console","log","con","Contestant","voteResults","vote","useState","contestantState","setContestantState","IDState","setIDState","resultsState","setResultsState","emailState","setEmailState","useEffect","closeMe","paddingBottom","type","value","onChange","e","target","required","email","put","post","alert","VoteResults","App","exact","path","component","ListContestants2","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","catch","error","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","status","headers","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.226acb9e.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n SteadfastReact\r\n \r\n \r\n
    \r\n \r\n Home\r\n \r\n \r\n Counter\r\n \r\n \r\n Fetch data\r\n \r\n \r\n List Contestants\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n {/* */}\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n state = {\r\n redirect: null\r\n };\r\n\r\n constructor() \r\n {\r\n window.location = '/index.html';\r\n }\r\n \r\n componentDidMount(){\r\n //this.setState({ redirect: \"/index.html\" });\r\n //window.location.replace('/index.html');\r\n }\r\n\r\n render () { \r\n return (\r\n
\r\n

Hello, world!

\r\n

Welcome to your new single-page application, built with:

\r\n \r\n

To help you get started, we have also set up:

\r\n \r\n

The ClientApp subdirectory is a standard React application based on the create-react-app template. If you open a command prompt in that directory, you can run npm commands such as npm test or npm install.

\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class FetchData extends Component {\r\n static displayName = FetchData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { forecasts: [], loading: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateWeatherData();\r\n }\r\n\r\n static renderForecastsTable(forecasts) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {forecasts.map(forecast =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : FetchData.renderForecastsTable(this.state.forecasts);\r\n\r\n return (\r\n
\r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server.

\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async populateWeatherData() {\r\n const response = await fetch('weatherforecast');\r\n const data = await response.json();\r\n this.setState({ forecasts: data, loading: false });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Counter extends Component {\r\n static displayName = Counter.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentCount: 0 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n }\r\n\r\n incrementCounter() {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Counter

\r\n\r\n

This is a simple example of a React component.

\r\n\r\n

Current count: {this.state.currentCount}

\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\n\nconst contestant = (props) => {\nreturn (\n
\n \n {props.firstname} {props.lastname}\n
\n )\n}\n\nexport default contestant;","import React, { Component } from 'react';\nimport axios from 'axios';\nimport Contestant from './Contestant';\n\nclass ListContestants extends Component {\n constructor(props) {\n super(props)\n this.state = {\n contestants : []\n }\n }\n\n componentDidMount () {\n axios.get('/api/contestants')\n .then(response => {\n this.setState({contestants: response.data})\n console.log(response.data);\n })\n } \n \n render () {\n return (\n
\n {this.state.contestants.map(con => \n \n )}\n
\n );\n }\n} \n\nexport default ListContestants;","import React from 'react';\n\nconst voteResults = (props) => {\nreturn (\n

{props.name} : {props.vote}

\n )\n}\n\nexport default voteResults;","import React, {useState, useEffect, Component} from 'react';\nimport axios from 'axios';\nimport Contestant from './Contestant';\nimport VoteResults from './VoteResults';\nimport '../../bs/bootstrap/css/bootstrap.min.css';\nimport '../../css/Register.css';\n//import '../../bs/js/jquery.min.js';\n//import '../../bs/bootstrap/js/bootstrap.min.js';\n\nconst ListContestants = () => {\n const [contestantState, setContestantState] = useState([{}])\n const [IDState, setIDState] = useState(null)\n const [resultsState, setResultsState] = useState('No') \n const [emailState, setEmailState] = useState({})\n \n\n useEffect(() => {\n axios.get('/api/contestants/')\n .then(response => {\n setContestantState(response.data);\n });\n }, []);\n\nconst voteMe = (id) => {\n if (emailState.email == null) {\n alert('Please enter your Email Address');\n return;\n }\n //event.preventDefault();\n //https://hunter.io/api-documentation/v2\n // result returns the main status of the verification. It can take 3 possible values:\n // \"deliverable\": the email verification is successful and the email address is valid.\n // \"undeliverable\": the email address is not valid.\n // \"risky\": the verification can't be validated.\n console.log(emailState.email);\n //axios.get('https://api.hunter.io/v2/email-verifier?api_key=3cf5ac98e3eb36aa334d38dc6fd3efa70e9d5856&email=' + emailState.email)\n // .then(res => {\n // console.log(res.data.data[\"result\"]);\n // var verifyEmail = res.data.data.result; \n // if (verifyEmail=='deliverable' || verifyEmail=='risky') {\n axios.put('/api/contestants/' + id)\n .then(response => {\n axios.get('/api/contestants/')\n .then(response => {\n setContestantState(response.data);\n setIDState(null);\n setResultsState('Yes');\n //setResultsState(prevState => prevState || !prevState); \n });\n //save Email address\n axios.post('/api/contestants', { email: emailState.email })\n .then(response => {\n setEmailState('');\n });\n });\n // }\n //})\n }\n\nconst showEmail = (id) => {\n setIDState(id); \n setResultsState('No');\n} \n\nconst updateField = e => {\n setEmailState({\n ...emailState,\n [e.target.name]: e.target.value\n });\n};\n\nconst closeMe = () => {\n setResultsState('No');\n setIDState(null);\n}\n\n return (\n
\n {contestantState.map(con => \n
\n
\n

{con.firstname} {con.lastname}

\n
showEmail(con.id)} />
\n
\n )} \n \n {/* \n \n {contestantState.map(con => \n \n \n \n \n )} \n \n
{con.firstname} {con.lastname} showEmail(con.id)} />
\n */}\n \n { IDState > 0 ? \n




Enter your email address: voteMe(IDState)} />







closeMe()} />
: null\n }\n



\n {\n resultsState == 'Yes' ?\n
\n

Voting Results

\n \n
closeMe()} />
\n
\n : null\n }\n
\n )\n}\n\nexport default ListContestants;","import React, { Component } from 'react';\r\nimport { Route, Redirect } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { FetchData } from './components/FetchData';\r\nimport { Counter } from './components/Counter';\r\nimport ListContestants2 from './components/vote/ListContestants2';\r\nimport ListContestants from './components/vote/ListContestants';\r\n\r\nimport './custom.css'\r\nimport './css/style/open-iconic-bootstrap.min.css';\r\n // import './css/style/animate.css';\r\n // import './css/style/owl.carousel.min.css';\r\n // import './css/style/owl.theme.default.min.css';\r\n // import './css/style/magnific-popup.css';\r\n // import './css/style/aos.css';\r\n // import './css/style/ionicons.min.css';\r\n // import './css/style/bootstrap-datepicker.css';\r\n // import './css/style/jquery.timepicker.css';\r\n // import './css/style/flaticon.css';\r\n // import './css/style/icomoon.css';\r\nimport './css/style/style.css';\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n \r\n\r\n render () {\r\n return (\r\n \r\n \r\n {/* (window.location = \"/index.html\")} /> */}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}