{"version":3,"sources":["config/firebase/context.js","config/firebase/firebase.js","config/firebase/index.js","components/mobile-nav-bar/mobile-nav-bar.js","components/loading-spinner/loading-spinner.js","components/async-component/async-component.js","config/routes.js","components/nav-bar/nav-bar.js","App.js","serviceWorker.js","index.js"],"names":["FirebaseContext","React","createContext","withFirebase","Component","props","Consumer","firebase","firebaseConfig","apiKey","process","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","Firebase","infoRef","db","collection","contactRef","app","initializeApp","this","firestore","MobileNavBar","state","routes","routeName","routeNameAlias","route","icon","faHome","faLaptop","faCoffee","faUser","location","className","map","r","key","exact","to","activeClassName","pathname","withRouter","LoadingSpiner","Async","provider","setState","default","Fragment","Routes","path","component","from","NavBar","navbarClosed","idx","App","fluid","style","margin","padding","overflow","height","middle","overflowY","xs","isLocalhost","Boolean","window","hostname","match","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","onUpdate","onSuccess","catch","error","ReactDOM","render","Provider","value","document","getElementById","URL","href","origin","addEventListener","fetch","response","contentType","headers","get","status","indexOf","ready","unregister","reload","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.83dfc284.chunk.js","sourcesContent":["import React from 'react';\n\nconst FirebaseContext = React.createContext(null);\n\nexport const withFirebase = Component => props => (\n \n {firebase => }\n \n );\n\nexport default FirebaseContext;","import app from 'firebase/app';\nimport 'firebase/firestore';\n\nconst firebaseConfig = {\n apiKey: process.env.REACT_APP_apiKey,\n authDomain: process.env.REACT_APP_authDomain,\n databaseURL: process.env.REACT_APP_databaseURL,\n projectId: process.env.REACT_APP_projectId,\n storageBucket: process.env.REACT_APP_storageBucket,\n messagingSenderId: process.env.REACT_APP_messagingSenderId,\n appId: process.env.REACT_APP_appId,\n};\n\nclass Firebase {\n constructor() {\n app.initializeApp(firebaseConfig);\n this.db = app.firestore();\n }\n\n infoRef = () => this.db.collection('info');\n contactRef = () => this.db.collection('contact');\n\n}\n\nexport default Firebase;\n","import FirebaseContext, { withFirebase } from './context';\n\nimport Firebase from './firebase';\n\nexport default Firebase;\n\nexport { FirebaseContext, withFirebase };","import React from 'react';\nimport { NavLink, withRouter } from 'react-router-dom';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCoffee, faHome, faUser, faLaptop } from '@fortawesome/free-solid-svg-icons'\n\nimport './mobile-nav-bar.scss';\n\nclass MobileNavBar extends React.Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n routes: [\n {routeName: 'HOME', routeNameAlias: 'H', route: '/', icon: faHome},\n {routeName: 'SKILLS', routeNameAlias: 'S', route: '/skills', icon: faLaptop},\n {routeName: 'PROJECTS', routeNameAlias: 'P', route: '/projects', icon: faCoffee},\n {routeName: 'CONTACT', routeNameAlias: 'C', route: '/contact', icon: faUser},\n ]\n }\n }\n\n render() {\n const { location } = this.props;\n const routes = this.state.routes;\n return (\n
\n
\n {\n routes.map( (r) => \n
\n \n {\n location.pathname && location.pathname !== r.route \n ? \n : {r.routeName}\n }\n \n
\n )\n }\n
\n
\n )\n }\n}\n\nMobileNavBar = withRouter(MobileNavBar);\n\nexport default MobileNavBar;","import React from 'react';\nimport './loading-spinner.scss';\n\nconst LoadingSpiner = () => {\n return (\n
\n )\n}\n\nexport default LoadingSpiner;","import React from 'react';\nimport LoadingSpiner from '../loading-spinner/loading-spinner';\n\nclass Async extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n Component: void 0\n }\n }\n\n async componentDidMount() {\n const props = await this.props.provider();\n this.setState({ Component: props.default });\n }\n\n render() {\n const { Component } = this.state;\n return(\n \n { Component ? : }\n \n )\n }\n}\n\nexport default Async;","import React from 'react';\nimport { Switch, Route, Redirect } from 'react-router-dom';\nimport Async from '../components/async-component/async-component';\n\nconst Routes = (props) => (\n \n import('../app/pages/home/home')} />} />\n import('../app/pages/contact/contact')} />}/>\n import('../app/pages/projects/projects')} />}/>\n import('../app/pages/skills/skills')} />}/>\n import('../app/pages/hobbies/hobbies')} />}/>\n \n \n);\n\nexport default Routes;","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport './nav-bar.scss';\n\nclass NavBar extends React.Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n navbarClosed: false,\n routes: [\n {routeName: 'HOME', routeNameAlias: 'H', route: '/'},\n {routeName: 'SKILLS', routeNameAlias: 'S', route: '/skills'},\n {routeName: 'PROJECTS', routeNameAlias: 'E', route: '/projects'},\n // {routeName: 'HOBBIES', routeNameAlias: 'HO', route: '/hobbies'},\n {routeName: 'CONTACT', routeNameAlias: 'S', route: '/contact'},\n ]\n }\n }\n render(){\n const routes = this.state.routes;\n return (\n
\n
\n
\n \n

KADY VILLICANA

\n
\n
\n
\n
\n {\n routes.map( (r, idx) => {\n return \n

{r.routeName}

\n
\n })\n }\n
\n
\n );\n }\n\n}\n\nexport default NavBar;\n","import React from 'react';\nimport './App.scss';\nimport { Grid, Row, Col } from 'react-flexbox-grid';\nimport MobileNavBar from './components/mobile-nav-bar/mobile-nav-bar';\nimport Routes from './config/routes';\nimport NavBar from './components/nav-bar/nav-bar';\n\nfunction App() {\n return (\n \n
\n \n
\n \n \n \n \n \n
\n \n
\n
\n );\n}\n\nexport default App;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.scss';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter as Router, Route } from 'react-router-dom';\nimport Firebase, { FirebaseContext } from './config/firebase';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\nserviceWorker.register();\n"],"sourceRoot":""}