{"version":3,"sources":["base.js","contexts/AuthContext.js","Components/Navigation.js","images/background.jpg","images/background2.jpg","images/background3.jpg","Components/Bootstrap/Bootstrap.js","Utilities/sampleCategories.js","Components/Categories/CategoryCreate.js","Components/Categories/CategoryEdit.js","Components/Categories/SingleCategory.js","Components/Categories/Categories.js","Utilities/sampleResources.js","images/checkmark.png","images/xmark.png","Components/ToDos/ToDosEdit.js","Components/ToDos/SingleResource.js","Components/ToDos/ToDoCreate.js","Components/ToDos/FilterCat.js","Components/ToDos/ToDos.js","images/404.jpg","Components/NotFound.js","Components/Footer.js","Components/Auth/Login.js","Components/PrivateRoute.js","App.js","reportWebVitals.js","index.js"],"names":["firebaseApp","firebase","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","authResult","auth","AuthContext","React","createContext","useAuth","useContext","AuthProvider","children","useState","currentUser","setCurrentUser","loading","setLoading","a","authProvider","GithubAuthProvider","signInWithPopup","then","authHandler","authData","user","signOut","value","authenticate","logout","useEffect","onAuthStateChanged","Provider","Navigation","Navbar","fixed","expand","Brand","href","className","src","photoURL","alt","displayName","Toggle","Collapse","Text","Nav","Link","onClick","window","location","Bootstrap","Carousel","Item","image","Caption","image2","image3","Container","Accordion","defaultActiveKey","Card","Header","as","Button","style","textDecoration","variant","eventKey","Body","target","rel","Row","Col","md","sampleCategories","CategoryId","Name","Description","CategoryCreate","props","nameRef","useRef","descRef","valSummary","setValSummary","nameVal","descVal","setDescVal","color","Form","onSubmit","e","preventDefault","category","current","length","validate","addCategory","Group","id","Control","type","ref","required","border","CategoryEdit","name","setName","description","setDescription","setNameVal","Modal","show","showEdit","onHide","setShowEdit","size","closeButton","categoryName","desc","axios","put","setEffectTrigger","effectTrigger","onChange","defaultValue","borderColor","SingleCategory","email","icon","confirm","deleteCategory","Categories","categories","setCategories","showCreateForm","setShowCreateForm","delete","updatedCategories","index","findIndex","x","splice","get","response","data","Jumbotron","post","push","map","cat","library","add","fas","sampleResources","TodoId","Action","Done","ToDosEdit","resource","action","setAction","done","setDone","categoryId","setCategoryId","console","log","actionVal","setActionVal","setDoneVal","SingleResource","fontWeight","checkMark","width","height","xMark","deleteResource","ToDoCreate","actionRef","doneRef","catRef","bg","addResource","FilterCat","setFilter","Number","ToDos","resources","setResources","filter","updatedResources","ResourceId","NotFound","Footer","Date","getFullYear","Login","history","useHistory","handleAuth","PrivateRoute","Component","component","rest","render","to","App","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.362014ed.chunk.js","sourcesContent":["import firebase from 'firebase/app'\r\nimport 'firebase/auth'\r\n\r\nconst firebaseApp = firebase.initializeApp({\r\n // apiKey: process.env.REACT_APP_API_KEY,\r\n // authDomain: process.env.REACT_APP_AUTH_DOMAIN,\r\n // projectId: process.env.REACT_APP_PROJECT_ID,\r\n // storageBucket: process.env.REACT_APP_STORAGE_BUCKET,\r\n // messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,\r\n // appId: process.env.REACT_APP_APP_ID\r\n apiKey: \"AIzaSyDDN2wZ7Dj5cbFiT4Ae5ojp6azcvUxXefo\",\r\n authDomain: \"reacttodo-c8177.firebaseapp.com\",\r\n projectId: \"reacttodo-c8177\",\r\n storageBucket: \"reacttodo-c8177.appspot.com\",\r\n messagingSenderId: \"723422018936\",\r\n appId: \"1:723422018936:web:b378f07f214f08818c5c8d\"\r\n})\r\n\r\nexport const authResult = firebaseApp.auth();\r\nexport default firebaseApp;","import React, {useContext, useState, useEffect} from 'react'\r\nimport firebaseApp, {authResult} from '../base'\r\nimport firebase from 'firebase'\r\n\r\nconst AuthContext = React.createContext();\r\n\r\nexport function useAuth(){\r\n return useContext(AuthContext);\r\n}\r\n\r\nexport function AuthProvider({children}){\r\n const [currentUser, setCurrentUser] = useState();\r\n const [loading, setLoading] = useState(true);\r\n\r\n async function authenticate(){\r\n const authProvider = new firebase.auth.GithubAuthProvider();\r\n return(\r\n firebaseApp.auth().signInWithPopup(authProvider).then(authHandler)\r\n )\r\n }\r\n\r\n async function authHandler(authData){\r\n setCurrentUser(authData.user);\r\n }\r\n\r\n async function logout(){\r\n return firebaseApp.auth().signOut().then(setCurrentUser(null))\r\n }\r\n\r\n const value = {\r\n currentUser, authenticate, logout\r\n }\r\n\r\n useEffect(() => {\r\n const authChange = authResult.onAuthStateChanged(user => {\r\n setCurrentUser(user);\r\n setLoading(false);\r\n })\r\n return authChange;\r\n }, [])\r\n\r\n return(\r\n \r\n {!loading && children}\r\n \r\n )\r\n}","import {React} from \"react\";\r\nimport { Navbar, Nav } from \"react-bootstrap\";\r\nimport \"../../src/App.css\";\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\n\r\n\r\nexport default function Navigation() {\r\n const { currentUser, logout } = useAuth();\r\n function handleAuth() {\r\n logout();\r\n window.location.href = \"#/login\";\r\n } \r\n \r\n return (\r\n \r\n \r\n ToDos\r\n {currentUser && (\r\n \r\n {currentUser.displayName}\r\n \r\n )}\r\n {currentUser && (\r\n \r\n Welcome: {currentUser.displayName}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/background.94c41406.jpg\";","export default __webpack_public_path__ + \"static/media/background2.992db605.jpg\";","export default __webpack_public_path__ + \"static/media/background3.db82368a.jpg\";","import React from \"react\";\r\nimport \"./Bootstrap.css\";\r\nimport '../../App.css'\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n Carousel,\r\n Accordion,\r\n Card,\r\n Button,\r\n} from \"react-bootstrap\";\r\nimport image from \"../../images/background.jpg\";\r\nimport image2 from \"../../images/background2.jpg\";\r\nimport image3 from \"../../images/background3.jpg\";\r\n\r\nexport default function Bootstrap() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \"First\r\n \r\n

Welcome to Bootstrap

\r\n

npm install react-bootstrap

\r\n
\r\n
\r\n \r\n \"Second\r\n \r\n

Each Carousel.Item is a slide

\r\n

npm install react-bootstrap

\r\n
\r\n
\r\n \r\n \"Third\r\n \r\n

Just using Components

\r\n

npm install react-bootstrap

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n STEP 1 - Install the Package\r\n \r\n \r\n \r\n npm install react-bootstrap\r\n \r\n \r\n \r\n \r\n \r\n STEP 2 - Import the Components you are using\r\n \r\n \r\n \r\n \r\n \r\n Visit react-bootstrap docs\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n STEP 3 - Call to the Components\r\n \r\n \r\n \r\n \r\n Using the code example from their documentation, call to the\r\n components as needed to implement the Bootstrap functionality\r\n in your UI.\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n col-md-3
\r\n will take up 3 of 12 columns in the grid\r\n

\r\n \r\n \r\n

\r\n col-md-6
will take up 6 of 12 columns in the grid\r\n

\r\n \r\n \r\n

\r\n col-md-3
\r\n will take up 3 of 12 columns in the grid\r\n

\r\n \r\n
\r\n \r\n \r\n This will take half of the parent's width.\r\n \r\n \r\n This will take half of the parent's width.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","const sampleCategories = [\r\n {\r\n CategoryId: 1,\r\n Name: 'Test Cat 1',\r\n Description: 'Test Description 1'\r\n },\r\n {\r\n CategoryId: 2,\r\n Name: 'Test Cat 2',\r\n Description: 'Test Description 2'\r\n }\r\n]\r\n\r\nexport default sampleCategories;","import React, {useRef, useState} from 'react'\r\nimport { Form, Card, Button } from 'react-bootstrap'\r\nimport '../../../src/App.css'\r\n\r\nexport default function CategoryCreate(props) {\r\n \r\n //create the refs\r\n const nameRef = useRef();\r\n const descRef = useRef();\r\n\r\n //validation hooks\r\n const [valSummary, setValSummary] = useState('');\r\n const [nameVal] = useState('');\r\n const [descVal, setDescVal] = useState('');\r\n\r\n const validate = (category) => {\r\n let desc = category.Description;\r\n \r\n desc.length > 50 ? setDescVal('** Max 50 Characters') : setDescVal('')\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n const category = {\r\n Name: nameRef.current.value,\r\n Description: descRef.current.value\r\n };\r\n\r\n validate(category);\r\n\r\n if(nameVal === '' && descVal === ''){\r\n props.addCategory(category);\r\n }\r\n else{\r\n setValSummary('Correct the inputs below to submit the category.')\r\n }\r\n }\r\n \r\n return (\r\n
\r\n \r\n
\r\n

Create New Category

\r\n
\r\n {valSummary !== '' &&\r\n
\r\n {valSummary}\r\n
\r\n }\r\n\r\n \r\n \r\n \r\n
{nameVal}
\r\n
\r\n \r\n \r\n \r\n
{descVal}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport {Modal, Form, Button} from 'react-bootstrap'\r\nimport axios from 'axios'\r\n\r\nexport default function CategoryEdit(props) {\r\n const [name, setName] = useState(props.category.Name);\r\n const [description, setDescription] = useState(props.category.Description);\r\n\r\n //validation hooks\r\n const [valSummary, setValSummary] = useState('');\r\n const [nameVal, setNameVal] = useState('');\r\n const [descVal, setDescVal] = useState('');\r\n\r\n const validate = (category) => {\r\n let name = category.Name;\r\n let desc = category.Description;\r\n\r\n name.length > 25 ? setNameVal('** Max 25 Characters') : setNameVal('')\r\n desc.length > 50 ? setDescVal('** Max 50 Characters') : setDescVal('')\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n const category = {\r\n CategoryId: props.category.CategoryId,\r\n Name: name,\r\n Description: description\r\n }\r\n\r\n //validate\r\n validate(category);\r\n\r\n if(nameVal === '' && descVal === '') {\r\n axios.put(`http://todo.william-mccarty.com/api/Categories/${props.category.CategoryId}`, category).then(() => {\r\n props.setEffectTrigger(!props.effectTrigger);\r\n props.setShowEdit(false);\r\n })\r\n }\r\n else{\r\n setValSummary('Please correct the errors below.');\r\n }\r\n\r\n }\r\n\r\n return (\r\n props.setShowEdit(false)} size=\"lg\">\r\n \r\n

Editing {props.category.categoryName}

\r\n
\r\n \r\n
\r\n {valSummary !== '' &&\r\n
\r\n {valSummary}\r\n
\r\n }\r\n \r\n \r\n setName(e.target.value)} defaultValue={name} required />\r\n
\r\n {nameVal}\r\n
\r\n
\r\n \r\n \r\n setDescription(e.target.value)} defaultValue={description} />\r\n
\r\n {descVal}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport {fas} from '@fortawesome/free-solid-svg-icons'\r\nimport {useAuth} from '../../contexts/AuthContext'\r\nimport CategoryEdit from './CategoryEdit'\r\n\r\nlibrary.add(fas);\r\n\r\nexport default function SingleCategory(props) {\r\n const {currentUser} = useAuth();\r\n const [showEdit, setShowEdit] = useState(false);\r\n\r\n return (\r\n <>\r\n \r\n {props.category.Name}\r\n {props.category.Description}\r\n {currentUser.email === 'williammccarty1@outlook.com' &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n {showEdit &&\r\n \r\n }\r\n \r\n )\r\n}\r\n","import React, {useState, useEffect} from 'react'\r\nimport '../../App.css'\r\nimport {Jumbotron, Container} from 'react-bootstrap'\r\nimport sampleCategories from '../../Utilities/sampleCategories'\r\nimport './Categories.css'\r\nimport axios from 'axios'\r\nimport {useAuth} from '../../contexts/AuthContext'\r\nimport CategoryCreate from './CategoryCreate'\r\nimport SingleCategory from './SingleCategory'\r\n\r\nexport default function Categories() {\r\n const [categories, setCategories] = useState(sampleCategories);\r\n const {currentUser} = useAuth();\r\n const [showCreateForm, setShowCreateForm] = useState(false);\r\n const [effectTrigger, setEffectTrigger] = useState(false);\r\n const getCategories = () => {\r\n axios.get('http://todo.william-mccarty.com/api/Categories').then(response => {\r\n setCategories(response.data)\r\n })\r\n }\r\n\r\n const addCategory = (category) => {\r\n axios.post('http://todo.william-mccarty.com/api/Categories', category).then(response => {\r\n let updatedCategories = categories;\r\n updatedCategories.push(response.data);\r\n setCategories(updatedCategories);\r\n setEffectTrigger(!effectTrigger);\r\n setShowCreateForm(false);\r\n })\r\n }\r\n\r\n const deleteCategory = (category) => {\r\n axios.delete(`http://todo.william-mccarty.com/api/Categories/${category.CategoryId}`).then(() => {\r\n let updatedCategories = categories;\r\n let index = updatedCategories.findIndex(x => x.CategoryId === category);\r\n updatedCategories.splice(index, 1);\r\n setCategories(updatedCategories);\r\n setEffectTrigger(!effectTrigger);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getCategories();\r\n }, [effectTrigger])\r\n return (\r\n
\r\n \r\n

Categories Dashboard

\r\n
\r\n
\r\n {(currentUser.email === 'williammccarty1@outlook.com' && showCreateForm) ?\r\n <>\r\n \r\n \r\n :\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentUser.email === 'williammccarty1@outlook.com' &&\r\n \r\n }\r\n \r\n \r\n \r\n {categories.map(cat => \r\n \r\n )}\r\n \r\n
NameDescriptionActions
\r\n











\r\n
\r\n
\r\n );\r\n}\r\n","const sampleResources = [ \r\n {\r\n TodoId: 1,\r\n Action: \"Mow\",\r\n Done: false\r\n } \r\n]\r\n\r\nexport default sampleResources;","export default __webpack_public_path__ + \"static/media/checkmark.bc5f6bdb.png\";","export default __webpack_public_path__ + \"static/media/xmark.c33f2391.png\";","import axios from 'axios';\r\nimport React, {useState} from 'react'\r\nimport {Modal, Form, Button} from 'react-bootstrap'\r\nimport '../../App.css'\r\n\r\nexport default function ToDosEdit(props) {\r\n const [action, setAction] = useState(props.resource.Action);\r\n const [done, setDone] = useState(props.resource.Done);\r\n const [categoryId, setCategoryId] = useState(props.resource.CategoryId);\r\n console.log(props.resource.TodoId)\r\n const [valSummary] = useState(\"\");\r\n const [actionVal, setActionVal] = useState(\"\");\r\n const [setDoneVal] = useState(\"\");\r\n\r\n const validate = (resource) => {\r\n let action = resource.Action\r\n let done = resource.Done\r\n \r\n action.length > 25 ? \r\n setActionVal('** Max 25 Characters') : \r\n setActionVal('')\r\n \r\n done.length > 75 ? \r\n setDoneVal('** Max 75 Characters') : \r\n setDoneVal('') \r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const resource= {\r\n TodoId: props.resource.TodoId,\r\n Action: action,\r\n Done: done,\r\n CategoryId: categoryId\r\n };\r\n\r\n validate(resource);\r\n axios.put(`http://todo.william-mccarty.com/api/ToDo/${props.resource.TodoId}`, resource).then(() => {\r\n props.setEffectTrigger(!props.effectTrigger);\r\n props.setShowEdit(false);\r\n })\r\n }\r\n\r\n\r\n return (\r\n props.setShowEdit(false)} size=\"lg\">\r\n \r\n

Edit {action}

\r\n
\r\n \r\n {/* pated content below */}\r\n
\r\n {valSummary !== '' &&\r\n
\r\n \r\n {valSummary}\r\n \r\n
\r\n }\r\n \r\n \r\n setAction(e.target.value)} required />\r\n
\r\n {actionVal}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport '../../App.css'\r\nimport '../../../src/Components/ToDos/ToDos.css'\r\nimport checkMark from '../../images/checkmark.png'\r\nimport xMark from '../../images/xmark.png'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport {fas} from '@fortawesome/free-solid-svg-icons'\r\nimport {useAuth} from '../../contexts/AuthContext'\r\nimport ToDosEdit from './ToDosEdit'\r\n\r\nlibrary.add(fas);\r\n\r\nexport default function SingleResource(props) {\r\n const {currentUser} = useAuth();\r\n const [showEdit, setShowEdit] = useState(false);\r\n\r\n return (\r\n
\r\n

{props.resource.Action}

\r\n {props.resource.Description !== null ? \r\n

I Need To: {props.resource.Action}

:\r\n

No Action Provided

\r\n }\r\n {props.resource.Done === true ?\r\n

\r\n \"Check Task Completed \r\n

:\r\n

\r\n \"Check Task Not Completed\r\n

\r\n }\r\n\r\n {currentUser.email === 'williammccarty1@outlook.com' &&\r\n
\r\n \r\n \r\n
\r\n }\r\n\r\n \r\n\r\n {/* \r\n Visit {props.resource.LinkText}\r\n */} \r\n
\r\n )\r\n}\r\n","import React, { useState, useRef } from \"react\";\r\nimport { Form, Button, Card } from \"react-bootstrap\";\r\nimport '../../../src/App.css'\r\n\r\nexport default function ToDoCreate(props) {\r\n const actionRef = useRef();\r\n const doneRef = useRef();\r\n const catRef = useRef();\r\n \r\n const [valSummary, setValSummary] = useState(\"\");\r\n const [actionVal, setActionVal] = useState(\"\");\r\n \r\n const validate = (resource) => {\r\n let action = resource.Action\r\n\r\n action.length > 50 ? \r\n setActionVal('** Max 50 Characters') : \r\n setActionVal('') \r\n\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault(); \r\n const resource = {\r\n Action: actionRef.current.value,\r\n Done: doneRef.current.value,\r\n CategoryId: catRef.current.value\r\n }\r\n\r\n validate(resource);\r\n\r\n if(actionVal === '' ){\r\n props.addResource(resource);\r\n }\r\n else {\r\n setValSummary('Correct the inputs below to submit the ToDo.')\r\n }\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n

Create New ToDo

\r\n
\r\n {valSummary !== \"\" && (\r\n
\r\n {valSummary}\r\n
\r\n )}\r\n \r\n \r\n \r\n
{actionVal}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react'\r\nimport '../../App.css'\r\n\r\nexport default function FilterCat(props) {\r\n return (\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n {props.categories.map(cat => \r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {Jumbotron, Container} from \"react-bootstrap\";\r\nimport \"../../App.css\";\r\nimport \"../ToDos/ToDos.css\";\r\nimport {useAuth} from \"../../contexts/AuthContext\"\r\nimport axios from \"axios\";\r\nimport sampleResources from \"../../Utilities/sampleResources\";\r\nimport SingleResource from \"./SingleResource\";\r\nimport ToDoCreate from \"./ToDoCreate\"\r\nimport FilterCat from './FilterCat'\r\n\r\n\r\nexport default function ToDos() {\r\n const { currentUser } = useAuth();\r\n const [resources, setResources] = useState(sampleResources);\r\n const [categories, setCategories] = useState([]);\r\n const [showCreateForm, setShowCreateForm] = useState(false);\r\n const [effectTrigger, setEffectTrigger] = useState(false);\r\n const [filter, setFilter] = useState(0);\r\n\r\n const getResources = () => {\r\n axios.get(\"http://todo.william-mccarty.com/api/ToDo\").then((response) => {\r\n setResources(response.data);\r\n });\r\n };\r\n\r\n const addToDo = (resource) => {\r\n console.log(resource);\r\n axios.post('http://todo.william-mccarty.com/api/ToDo', resource).then(response => {\r\n //create temp collection\r\n let updatedResources = resources;\r\n //update temp object\r\n updatedResources.push(response.data);\r\n //update state\r\n setResources(updatedResources);\r\n //get resources from the api\r\n setEffectTrigger(!effectTrigger);\r\n //toggle te form closed\r\n setShowCreateForm(false);\r\n })\r\n }\r\n\r\n const deleteResource = (resource) => {\r\n //update the db using axios\r\n axios.delete(`http://todo.william-mccarty.com/api/ToDo/${resource.TodoId}`).then(() => {\r\n let updatedResources = resources;\r\n let index = updatedResources.findIndex(x => x.ResourceId === resource.ResourceId);\r\n updatedResources.splice(index, 1);\r\n setResources(updatedResources);\r\n setEffectTrigger(!effectTrigger);\r\n })\r\n}\r\n\r\n const getCategories = () => {\r\n axios.get('http://todo.william-mccarty.com/api/Categories').then(response => { setCategories(response.data)})\r\n }\r\n\r\n useEffect(() => {\r\n getResources();\r\n getCategories();\r\n }, [effectTrigger])\r\n\r\n return (\r\n
\r\n \r\n

ToDo Dashboard

\r\n
\r\n {currentUser.email != null && currentUser.email === 'williammccarty1@outlook.com' &&\r\n
\r\n \r\n
\r\n {showCreateForm &&\r\n \r\n }\r\n
\r\n
\r\n }\r\n\r\n \r\n\r\n {filter < 0 ?\r\n \r\n
\r\n {filter === -1 ? \r\n resources.filter(x => x.Done === true).map(x => \r\n \r\n ) : \r\n resources.filter(x => x.Done === false).map(x => \r\n \r\n )\r\n }\r\n\r\n {filter === -1 && resources.filter(resource => resource.Done === true).length === 0 &&\r\n

\r\n There Were No Results Found For Your Selection.\r\n

\r\n } \r\n\r\n {filter === -2 && resources.filter(resource => resource.Done === false).length === 0 &&\r\n

\r\n There Were No Results Found For Your Selection.\r\n

\r\n } \r\n
\r\n













\r\n
\r\n :\r\n \r\n
\r\n {filter === 0 ? \r\n resources.map(x => \r\n \r\n ) : \r\n resources.filter(x => x.CategoryId === filter).map(x => \r\n \r\n )\r\n }\r\n \r\n {filter !== 0 && resources.filter(resource => resource.CategoryId === filter).length === 0 &&\r\n

\r\n There Were No Results Found For Your Selection.\r\n

\r\n } \r\n
\r\n













\r\n
\r\n } \r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/404.f7d4fe9d.jpg\";","import React from 'react'\r\nimport './NotFound.css'\r\nimport image from '../images/404.jpg'\r\n\r\nexport default function NotFound() {\r\n return (\r\n
\r\n \"Resource\r\n

Resource Not Found

\r\n
\r\n )\r\n}","import React from \"react\";\r\n\r\nexport default function Footer() {\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react'\r\nimport {useAuth} from '../../contexts/AuthContext'\r\nimport {Container, Card, Jumbotron} from 'react-bootstrap'\r\nimport {useHistory} from 'react-router'\r\n\r\nexport default function Login() {\r\n const {authenticate} = useAuth();\r\n const history = useHistory();\r\n async function handleAuth(){\r\n await authenticate();\r\n history.push('/')\r\n }\r\n return (\r\n
\r\n \r\n

Welcome to ToDos

\r\n
\r\n \r\n \r\n \r\n

Login for full functionality

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useAuth } from '../contexts/AuthContext'\r\nimport {Route, Redirect} from 'react-router-dom'\r\n\r\nexport default function PrivateRoute({component: Component, ...rest}) {\r\n const {currentUser} = useAuth();\r\n return (\r\n {\r\n return currentUser ? : \r\n }}>\r\n )\r\n}\r\n","import './App.css';\nimport Navigation from \"./Components/Navigation\";\nimport {HashRouter as Router, Switch, Route} from 'react-router-dom'\nimport Bootstrap from './Components/Bootstrap/Bootstrap'\nimport Categories from './Components/Categories/Categories';\nimport ToDos from './Components/ToDos/ToDos';\nimport NotFound from './Components/NotFound';\nimport '../src/App.css'\nimport Footer from './Components/Footer';\nimport { AuthProvider } from \"./contexts/AuthContext\";\nimport Login from './Components/Auth/Login'\nimport PrivateRoute from \"./Components/PrivateRoute\";\n\nfunction App() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {/*
\n \"logo\"\n

\n Edit src/App.js and save to reload.\n

\n \n Learn React\n \n
*/}\n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport 'bootstrap/dist/css/bootstrap.min.css'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}