{"version":3,"sources":["components/Template/Analytics.js","data/routes.js","components/Template/Hamburger.js","components/Template/Navigation.js","components/Template/SideBar.js","components/Template/ScrollToTop.js","layouts/Main.js","data/contact.js","components/Contact/ContactIcons.js","App.js","index.js"],"names":["NODE_ENV","REACT_APP_GA_TRACKING_ID","process","ReactGA","initialize","Analytics","pathname","useLocation","useEffect","set","page","pageview","routes","index","label","path","Menu","lazy","Hamburger","open","setOpen","useState","_jsxs","className","children","_jsx","id","onClick","Suspense","fallback","_Fragment","right","isOpen","map","l","Link","to","Navigation","filter","PUBLIC_URL","SideBar","src","concat","alt","href","target","rel","window","location","includes","ContactIcons","ScrollToTop","scrollTo","Main","props","HelmetProvider","Helmet","titleTemplate","defaultTitle","title","name","content","description","fullPage","defaultProps","data","link","icon","faCalendar","faEnvelope","faAddressCard","faLinkedinIn","faGithub","s","FontAwesomeIcon","About","Contact","Index","NotFound","Projects","Resume","App","BrowserRouter","basename","Switch","Route","exact","component","status","StrictApp","React","StrictMode","rootElement","document","getElementById","hasChildNodes","hydrate","render"],"mappings":"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","file":"static/js/main.649efaed.chunk.js","sourcesContent":["import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport ReactGA from 'react-ga';\n\nconst { NODE_ENV, REACT_APP_GA_TRACKING_ID } = process.env;\n\nif (NODE_ENV === 'production') {\n ReactGA.initialize(REACT_APP_GA_TRACKING_ID);\n}\n\nconst Analytics = () => {\n const { pathname } = useLocation();\n\n useEffect(() => {\n if (NODE_ENV === 'production') {\n ReactGA.set({\n page: pathname,\n });\n ReactGA.pageview(pathname);\n }\n }, [pathname]);\n\n return null;\n};\n\nexport default Analytics;\n","const routes = [\n {\n index: true,\n label: 'Batchema Sombie',\n path: '/'\n },\n {\n label: 'About',\n path: '/about'\n },\n {\n label: 'Resume',\n path: '/resume'\n },\n {\n label: 'Projects',\n path: '/projects'\n },\n // {\n // label: 'Stats',\n // path: '/stats',\n // },\n {\n label: 'Contact',\n path: '/contact'\n }\n];\n\nexport default routes;\n","import React, { Suspense, lazy, useState } from 'react';\n\nimport { Link } from 'react-router-dom';\nimport routes from '../../data/routes';\n\nconst Menu = lazy(() => import('react-burger-menu/lib/menus/slide'));\n\nconst Hamburger = () => {\n const [open, setOpen] = useState(false);\n\n return (\n
\n \n }>\n \n
    \n {routes.map((l) => (\n
  • \n setOpen(!open)}>\n

    {l.label}

    \n \n
  • \n ))}\n
\n
\n
\n
\n );\n};\n\nexport default Hamburger;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport Hamburger from './Hamburger';\nimport routes from '../../data/routes';\n\n// Websites Navbar, displays routes defined in 'src/data/routes'\nconst Navigation = () => (\n
\n

\n {routes.filter((l) => l.index).map((l) => (\n {l.label}\n ))}\n

\n \n \n
\n);\n\nexport default Navigation;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport ContactIcons from \"../Contact/ContactIcons\";\n\nconst { PUBLIC_URL } = process.env; // set automatically from package.json:homepage\n\nconst SideBar = () => (\n
\n
\n \n \"\"\n \n
\n

Batchema E. Sombie

\n

\n Email me\n

\n
\n
\n\n
\n

About

\n

\n Software engineer and tech entrepreneur. Founder of{\" \"}\n \n MailMyTaxes.com\n \n . Passionate about artificial intelligence (AI), software infrastructure\n and clever algorithms. Please, do not hesitate to{\" \"}\n contact me\n

\n \n
\n\n
\n \n

\n © Batchema Sombie batchema.com.\n

\n
\n
\n);\n\nexport default SideBar;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\n// See https://reacttraining.com/react-router/web/guides/scroll-restoration/scroll-to-top\nconst ScrollToTop = () => {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n};\n\nexport default ScrollToTop;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\n\nimport Analytics from '../components/Template/Analytics';\nimport Navigation from '../components/Template/Navigation';\nimport SideBar from '../components/Template/SideBar';\nimport ScrollToTop from '../components/Template/ScrollToTop';\n\nconst Main = (props) => (\n \n \n \n \n {props.title && {props.title}}\n \n \n
\n \n
{props.children}
\n {props.fullPage ? null : }\n
\n
\n);\n\nMain.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n fullPage: PropTypes.bool,\n title: PropTypes.string,\n description: PropTypes.string\n};\n\nMain.defaultProps = {\n children: null,\n fullPage: false,\n title: null,\n description: \"Michael D'Angelo's personal website.\"\n};\n\nexport default Main;\n","import { faGithub } from \"@fortawesome/free-brands-svg-icons/faGithub\";\nimport { faLinkedinIn } from \"@fortawesome/free-brands-svg-icons/faLinkedinIn\";\nimport { faEnvelope } from \"@fortawesome/free-regular-svg-icons/faEnvelope\";\nimport { faAddressCard } from \"@fortawesome/free-regular-svg-icons/faAddressCard\";\nimport { faCalendar } from \"@fortawesome/free-regular-svg-icons/faCalendar\";\n// See https://fontawesome.com/icons?d=gallery&s=brands,regular&m=free\n// to add other icons.\n\nconst data = [\n {\n link: \"https://cal.com/bookbatchema\",\n label: \"Schedule a Meeting\",\n icon: faCalendar,\n },\n {\n link: \"mailto:batchema@mailmytaxes.com\",\n label: \"Email\",\n icon: faEnvelope,\n },\n {\n link: \"/vcard\",\n label: \"Digital Business Card\",\n icon: faAddressCard,\n },\n {\n link: \"https://www.linkedin.com/in/batchema\",\n label: \"LinkedIn\",\n icon: faLinkedinIn,\n },\n {\n link: \"https://github.com/batchema\",\n label: \"Github\",\n icon: faGithub,\n },\n];\n\nexport default data;\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport data from '../../data/contact';\n\nconst ContactIcons = () => (\n \n);\n\nexport default ContactIcons;\n","import React, { Suspense, lazy } from \"react\";\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\nimport Main from \"./layouts/Main\"; // fallback for lazy pages\nimport \"./static/css/main.scss\"; // All of our styles\n\nconst { PUBLIC_URL } = process.env;\n\n// Every route - we lazy load so that each page can be chunked\n// NOTE that some of these chunks are very small. We should optimize\n// which pages are lazy loaded in the future.\nconst About = lazy(() => import(\"./pages/About\"));\nconst Contact = lazy(() => import(\"./pages/Contact\"));\nconst Index = lazy(() => import(\"./pages/Index\"));\nconst NotFound = lazy(() => import(\"./pages/NotFound\"));\nconst Projects = lazy(() => import(\"./pages/Projects\"));\nconst Resume = lazy(() => import(\"./pages/Resume\"));\n// const Stats = lazy(() => import('./pages/Stats'));\n\nconst App = () => (\n \n }>\n \n \n \n \n {/* */}\n \n \n \n \n \n \n);\n\nexport default App;\n","import React from 'react';\nimport { hydrate, render } from 'react-dom';\nimport App from './App';\n\n// See https://reactjs.org/docs/strict-mode.html\nconst StrictApp = () => (\n \n \n \n);\n\nconst rootElement = document.getElementById('root');\n\n// hydrate is required by react-snap.\nif (rootElement.hasChildNodes()) {\n hydrate(, rootElement);\n} else {\n render(, rootElement);\n}\n"],"sourceRoot":""}