{"version":3,"sources":["components/Header.js","firebase.js","components/NewRunForm.js","components/RunsList.js","App.js","index.js"],"names":["Header","href","firebase","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","Filter","require","NewRunForm","useState","Date","now","date","setDate","title","setTitle","distance","setDistance","time","setTime","filter","className","onSubmit","e","preventDefault","firestore","collection","add","clean","then","type","name","onChange","currentTarget","value","placeholder","RunsList","runs","setRuns","useEffect","unsubscribe","onSnapshot","snapshot","newRuns","docs","map","doc","id","data","useRuns","length","run","App","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"8OAaeA,MAXf,WACE,OACE,mCACE,mDACA,oCACK,mBAAGC,KAAK,qCAAR,gC,sBCMXC,IAASC,cATc,CACrBC,OAAQ,0CACRC,WAAY,iCACZC,UAAW,iBACXC,cAAe,6BACfC,kBAAmB,eACnBC,MAAO,8CAKMP,QAAf,ECbIQ,EAASC,EAAQ,IAiFNC,MA/Ef,WAAuB,IAAD,EACIC,mBAASC,KAAKC,OADlB,mBACbC,EADa,KACPC,EADO,OAEMJ,mBAAS,IAFf,mBAEbK,EAFa,KAENC,EAFM,OAGYN,mBAAS,IAHrB,mBAGbO,EAHa,KAGHC,EAHG,OAIIR,mBAAS,IAJb,mBAIbS,EAJa,KAIPC,EAJO,KAMdC,EAAS,IAAId,EAqBnB,OACE,qBAAKe,UAAU,0CAAf,SACE,qBAAKA,UAAU,YAAf,SACE,uBAAMC,SAtBS,SAACC,GACpBA,EAAEC,iBACF1B,EACG2B,YACAC,WAAW,QACXC,IAAI,CACHf,OACAE,MAAOM,EAAOQ,MAAMd,GACpBE,WACAE,SAEDW,MAAK,WACJhB,EAAQ,IACRE,EAAS,IACTE,EAAY,IACZE,EAAQ,QAOsBE,UAAU,cAAxC,UACE,qBAAKA,UAAU,cAAf,SACE,uBACES,KAAK,OACLC,KAAK,OACLV,UAAU,eACVW,SAAU,SAACT,GAAD,OAAOV,EAAQU,EAAEU,cAAcC,QACzCA,MAAOtB,MAGX,qBAAKS,UAAU,cAAf,SACE,uBACES,KAAK,OACLC,KAAK,QACLV,UAAU,eACVc,YAAY,QACZH,SAAU,SAACT,GAAD,OAAOR,EAASQ,EAAEU,cAAcC,QAC1CA,MAAOpB,MAGX,qBAAKO,UAAU,cAAf,SACE,uBACES,KAAK,SACLC,KAAK,WACLV,UAAU,eACVc,YAAY,WACZD,MAAOlB,EACPgB,SAAU,SAACT,GAAD,OAAON,EAAYM,EAAEU,cAAcC,YAGjD,qBAAKb,UAAU,cAAf,SACE,uBACES,KAAK,SACLC,KAAK,OACLV,UAAU,eACVc,YAAY,cACZD,MAAOhB,EACPc,SAAU,SAACT,GAAD,OAAOJ,EAAQI,EAAEU,cAAcC,YAG7C,qBAAKb,UAAU,cAAf,SACE,wBAAQA,UAAU,4BAAlB,+B,QCdGe,MAvCf,WACE,IAAMC,EApBQ,WAAO,IAAD,EACI5B,mBAAS,IADb,mBACb4B,EADa,KACPC,EADO,KAgBpB,OAbAC,qBAAU,WACR,IAAMC,EAAc1C,EACjB2B,YACAC,WAAW,QACXe,YAAW,SAACC,GACX,IAAMC,EAAUD,EAASE,KAAKC,KAAI,SAACC,GAAD,oBAChCC,GAAID,EAAIC,IACLD,EAAIE,WAETV,EAAQK,MAEZ,OAAO,kBAAMH,OACZ,IACIH,EAIMY,GACb,OACE,qBAAK5B,UAAU,YAAf,SACE,sBAAKA,UAAU,YAAf,UACE,oBAAIA,UAAU,mBAAd,uBACiB,IAAhBgB,EAAKa,OACJ,wBAAO7B,UAAU,wBAAjB,UACE,gCACE,+BACE,sCACA,uCACA,0CACA,qDAGJ,gCACGgB,EAAKQ,KAAI,SAACM,GACT,OACE,qBAAiB9B,UAAU,qBAA3B,UACE,6BAAK8B,EAAIvC,OACT,6BAAKuC,EAAIrC,QACT,+BAAKqC,EAAInC,SAAT,YACA,+BAAKmC,EAAIjC,KAAT,gBAJOiC,EAAIJ,YAWrB,mBAAG1B,UAAU,cAAb,SACE,mFChCG+B,MAVf,WACE,OACE,sBAAK/B,UAAU,0BAAf,UACE,cAAC,EAAD,IACA,cAAC,EAAD,IACA,cAAC,EAAD,QCXNgC,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,W","file":"static/js/main.6ae566a7.chunk.js","sourcesContent":["import React from 'react';\n\nfunction Header() {\n return (\n
\n

React Run Tracker

\n

\n by @jwhubert91\n

\n
\n );\n}\n\nexport default Header;\n","import firebase from 'firebase';\nimport 'firebase/app';\n\n// Your web app's Firebase configuration\nconst firebaseConfig = {\n apiKey: 'AIzaSyC6ZQK-6y1yVvoKIv47DqBYbSn4Ms6DgWo',\n authDomain: 'run-tracker-v2.firebaseapp.com',\n projectId: 'run-tracker-v2',\n storageBucket: 'run-tracker-v2.appspot.com',\n messagingSenderId: '717874014690',\n appId: '1:717874014690:web:75437c61611ed33b9231bb',\n};\n// Initialize Firebase\nfirebase.initializeApp(firebaseConfig);\n\nexport default firebase;\n","import React, { useState } from 'react';\nimport firebase from '../firebase';\nvar Filter = require('bad-words');\n\nfunction NewRunForm() {\n const [date, setDate] = useState(Date.now());\n const [title, setTitle] = useState('');\n const [distance, setDistance] = useState('');\n const [time, setTime] = useState('');\n\n const filter = new Filter();\n\n const handleSubmit = (e) => {\n e.preventDefault();\n firebase\n .firestore()\n .collection('runs')\n .add({\n date,\n title: filter.clean(title),\n distance,\n time,\n })\n .then(() => {\n setDate('');\n setTitle('');\n setDistance('');\n setTime('');\n });\n };\n\n return (\n
\n
\n
\n
\n setDate(e.currentTarget.value)}\n value={date}\n />\n
\n
\n setTitle(e.currentTarget.value)}\n value={title}\n />\n
\n
\n setDistance(e.currentTarget.value)}\n />\n
\n
\n setTime(e.currentTarget.value)}\n />\n
\n
\n \n
\n
\n
\n
\n );\n}\n\nexport default NewRunForm;\n","import React, { useState, useEffect } from 'react';\nimport firebase from '../firebase';\n\nconst useRuns = () => {\n const [runs, setRuns] = useState([]);\n\n useEffect(() => {\n const unsubscribe = firebase\n .firestore()\n .collection('runs')\n .onSnapshot((snapshot) => {\n const newRuns = snapshot.docs.map((doc) => ({\n id: doc.id,\n ...doc.data(),\n }));\n setRuns(newRuns);\n });\n return () => unsubscribe();\n }, []);\n return runs;\n};\n\nfunction RunsList() {\n const runs = useRuns();\n return (\n
\n
\n

Runs List

\n {runs.length !== 0 ? (\n \n \n \n \n \n \n \n \n \n \n {runs.map((run) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
DateTitleDistanceTime (minutes)
{run.date}{run.title}{run.distance} miles{run.time} minutes
\n ) : (\n

\n There are currently no runs to display.\n

\n )}\n
\n
\n );\n}\n\nexport default RunsList;\n","import './App.css';\nimport Header from './components/Header';\nimport NewRunForm from './components/NewRunForm';\nimport RunsList from './components/RunsList';\n\n// firebase.firestore().collection('runs').add({\n// date: Date.now(),\n// time_minutes: 20,\n// distance: 2.2,\n// });\n\nfunction App() {\n return (\n
\n
\n \n \n
\n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}