\n )\n}\n","export default __webpack_public_path__ + \"static/media/SanDiego.35f8cc09.svg\";","export default __webpack_public_path__ + \"static/media/distest.6bf47b83.svg\";","export default __webpack_public_path__ + \"static/media/scoresaver.3f65e348.svg\";","export default __webpack_public_path__ + \"static/media/HashiCorp_Logo_no_text.344aecaa.png\";","/**\n * TODO:\n * - For things that can't be linked, use to signal that clicking will open a modal https://ant.design/components/modal/\n * in order to give a more complex writeup and some pictures\n * - Tooltip for modal and linkable items, possibly which displays a modal with an example card with tooltips or explanations\n * - Footer\n * - Responsive top bar\n *\n */\n\nimport \"./ProjectGrid.scss\";\nimport Masonry from \"masonry-layout\";\nimport ImagesLoaded from \"imagesloaded\";\n\nimport { useEffect } from \"react\";\nimport { LinkOutlined } from \"@ant-design/icons\";\nimport CodeDaySD from \"../images/SanDiego.svg\";\nimport Foresight from \"../images/foresightsports.png\";\nimport Distest from \"../images/distest.svg\";\nimport Scoresaver from \"../images/scoresaver.svg\";\nimport Hashicorp from \"../images/HashiCorp_Logo_no_text.png\";\n\ntype GridElementImageProps = {\n image_url: string;\n image_alt: string;\n title: string;\n text: string;\n link?: string;\n org?: string;\n};\n\ntype GridElementProps = {\n title: string;\n text: string;\n link?: string;\n org?: string;\n};\n\nfunction OneWide({ title, text, link, org }: GridElementProps) {\n if (link === undefined) {\n return (\n
;\n};\n\nfunction Age() {\n // Accounts for leap years and stuff\n function milliseconds_year() {\n const dateObj = new Date();\n const dateInit = Math.round(\n new Date(dateObj.getFullYear(), 0, 1).getTime()\n );\n const dateEnd = Math.round(\n new Date(dateObj.getFullYear(), 11, 31, 23, 59, 59, 999).getTime()\n );\n return dateEnd - dateInit;\n }\n\n function searchSternBorcotTree(\n target: number,\n left_n: number,\n left_d: number,\n right_n: number,\n right_d: number,\n count: number = 0\n ): [number, number] {\n count++;\n const center_n: number = left_n + right_n;\n const center_d: number = left_d + right_d;\n // Check to see if we've gone too deep\n if (count > 25) return [center_n, center_d];\n // Check to see if we're close enough to the target\n if (Math.abs(target - (center_n / center_d)) > 0.001) {\n // Look right down the tree\n if (target > (center_n / center_d))\n return searchSternBorcotTree(\n target,\n center_n,\n center_d,\n right_n,\n right_d,\n count\n );\n // Ok now look left\n return searchSternBorcotTree(\n target,\n left_n,\n left_d,\n center_n,\n center_d,\n count\n );\n }\n return [center_n, center_d];\n }\n\n function CalcAge() {\n let ageMs = new Date().getTime() - 1021004428000;\n const yearMs = milliseconds_year();\n const ageYearsComponent = Math.floor(ageMs / yearMs);\n const ageSecondsComponent = Math.floor((ageMs % yearMs) / 1000);\n const [target_n, target_d] = searchSternBorcotTree(\n ageSecondsComponent / (yearMs / 1000),\n 0,\n 1,\n 1,\n 1\n );\n return `${ageYearsComponent} and ${target_n}/${target_d}`;\n }\n\n const [age, setAge] = useState(CalcAge());\n\n function UpdateAge() {\n setAge(CalcAge());\n }\n\n useEffect(() => {\n UpdateAge();\n\n const interval = setInterval(UpdateAge, 5000);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (\n
\n {age} years old\n
\n );\n};\n\nexport function AboutMe() {\n function EmailHandler() {\n const email = \"Y29udGFjdEBqYWtlY292ZXIubWU=\";\n window.prompt(\"Thanks for being a human! Here's my email:\", atob(email));\n }\n\n return (\n
\n doing (general stuff - in class, projects, sleeping, games)\n
\n \n
\n rather colorblind\n
\n
\n
\n
\n
\n
\n );\n}\n","import \"./Home.scss\";\nimport { ProjectGrid } from \"./ProjectGrid\";\nimport { AboutMe } from \"./AboutMe\";\n\nexport function Home() {\n return (\n
\n \n \n
\n );\n}\n","export function Resume() {\n return (\n
\n
Resume
\n
\n );\n}\n","import { Route, Switch } from \"react-router-dom\";\nimport { Contact } from \"./Contact\";\nimport { Home } from \"./Home\";\nimport { Resume } from \"./Resume\";\n\nexport function Main() {\n return (\n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\nimport \"./App.scss\";\nimport { Footer } from \"./components/Footer\";\nimport { Header } from \"./components/Header\";\nimport { Main } from \"./components/Main\";\n\nfunction App() {\n return (\n
\n \n \n \n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\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.scss\";\nimport \"./imports.scss\"\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { HashRouter } from \"react-router-dom\";\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":""}
\ No newline at end of file
diff --git a/static/js/main.9aecfc74.chunk.js b/static/js/main.9aecfc74.chunk.js
deleted file mode 100644
index b0f9958..0000000
--- a/static/js/main.9aecfc74.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this["webpackJsonppersonal-website-static"]=this["webpackJsonppersonal-website-static"]||[]).push([[0],{101:function(e,t,i){},102:function(e,t,i){},103:function(e,t,i){},104:function(e,t,i){},109:function(e,t,i){},125:function(e,t,i){},126:function(e,t,i){},131:function(e,t,i){},150:function(e,t,i){"use strict";i.r(t);var n=i(1),r=i(0),s=i(17),c=i.n(s),a=(i(101),i(102),i(103),i(104),i(12)),o=function(){return Object(n.jsxs)("footer",{className:"site-footer",children:[Object(n.jsxs)("div",{className:"footer-grid",children:[Object(n.jsx)("div",{className:"blurb",children:Object(n.jsxs)("p",{className:"text-justify",children:["Made with \u2615 and \u2764\ufe0f by Jake Cover, a CS student who really needs to find something witty and interesting to put here soon. Feel free to reach out!",Object(n.jsx)("br",{}),"Checklist Icon by Arthur Shlain from the Noun Project"]})}),Object(n.jsxs)("div",{className:"links-container",children:[Object(n.jsx)("h2",{children:"Links and Stuff"}),Object(n.jsxs)("ul",{className:"footer-links",children:[Object(n.jsx)("li",{children:Object(n.jsx)(a.b,{to:"/",children:"Home"})}),Object(n.jsx)("li",{children:Object(n.jsx)(a.b,{to:"/contact",children:"Contact"})}),Object(n.jsx)("li",{children:Object(n.jsx)(a.b,{to:"/resume",children:"Resume"})}),Object(n.jsx)("li",{children:Object(n.jsx)("a",{href:"https://github.com/JakeCover",children:"GitHub"})})]})]})]}),Object(n.jsx)("hr",{}),Object(n.jsx)("div",{className:"copyright-text",children:"Copyright \xa9 2020 All Rights Reserved by Jake Cover"})]})},l=(i(109),i(153)),d=i(155),j=i(156),h=function(){return Object(n.jsxs)("header",{className:"header",id:"myHeader",children:[Object(n.jsx)(a.b,{to:"/",className:"navbar-brand",children:Object(n.jsx)("h1",{children:"Jake Cover"})}),Object(n.jsx)(l.a,{href:void 0,className:"icon",onClick:function(){return function(){var e=document.getElementById("myHeader");"header"===e.className?e.className+=" responsive":e.className="header"}()},children:Object(n.jsx)(j.a,{className:"fa fa-bars"})}),Object(n.jsxs)(d.b,{className:"headerLinks",children:[Object(n.jsx)(a.b,{className:"nav-link",to:"/",children:Object(n.jsx)("h2",{children:"Home"})}),Object(n.jsx)(a.b,{className:"nav-link",to:"/contact",children:Object(n.jsx)("h2",{children:"Contact"})}),Object(n.jsx)(a.b,{className:"nav-link",to:"/resume",children:Object(n.jsx)("h2",{children:"Resume"})}),Object(n.jsx)("a",{className:"nav-link",href:"https://github.com/JakeCover",target:"_blank",rel:"noreferrer",children:Object(n.jsx)("h2",{children:"GitHub"})})]})]})},b=i(7),m=function(){return Object(n.jsx)("div",{children:Object(n.jsx)("h1",{style:{margin:"auto"},children:"Contact"})})},u=(i(125),i(126),i(83)),x=i.n(u),O=i(84),g=i.n(O),p=i(157),f=i.p+"static/media/SanDiego.35f8cc09.svg",v=i.p+"static/media/distest.6bf47b83.svg",A=i.p+"static/media/scoresaver.3f65e348.svg",k=i.p+"static/media/HashiCorp_Logo_no_text.344aecaa.png",y=function(e){var t=e.title,i=e.text,r=e.link,s=e.org;return void 0===r?Object(n.jsx)("div",{className:"OneWide GridElement",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsxs)("div",{className:"title",children:[Object(n.jsx)("h2",{children:t}),s&&Object(n.jsx)("h3",{children:s})]}),Object(n.jsx)("div",{className:"description",children:Object(n.jsx)("p",{children:i})})]})}):Object(n.jsx)("a",{className:"OneWide GridElement Link",href:r,rel:"noreferrer",target:"_blank",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsxs)("div",{className:"title",children:[Object(n.jsx)("h2",{children:t}),s&&Object(n.jsx)("h3",{children:s}),Object(n.jsx)(p.a,{className:"LinkIcon"})]}),Object(n.jsx)("div",{className:"description",children:Object(n.jsx)("p",{children:i})})]})})},w=function(e){var t=e.image_url,i=e.image_alt,r=e.title,s=e.text,c=e.link,a=e.org;return void 0===c?Object(n.jsx)("div",{className:"OneWide Pic GridElement",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsx)("div",{className:"image",children:Object(n.jsx)("img",{src:t,alt:i})}),Object(n.jsxs)("div",{className:"description",children:[Object(n.jsx)("h2",{children:r}),a&&Object(n.jsx)("h3",{children:a}),Object(n.jsx)("p",{children:s})]})]})}):Object(n.jsx)("a",{className:"OneWide Pic GridElement Link",href:c,target:"_blank",rel:"noreferrer",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsxs)("div",{className:"image",children:[Object(n.jsx)("img",{src:t,alt:i}),Object(n.jsx)(p.a,{className:"LinkIcon"})]}),Object(n.jsxs)("div",{className:"description",children:[Object(n.jsx)("h2",{children:r}),a&&Object(n.jsx)("h3",{children:a}),Object(n.jsx)("p",{children:s})]})]})})},N=function(e){var t=e.image_url,i=e.image_alt,r=e.title,s=e.text,c=e.link,a=e.org;return void 0===c?Object(n.jsx)("div",{className:"FourByOne GridElement",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsx)("div",{className:"image",children:Object(n.jsx)("img",{src:t,alt:i})}),Object(n.jsxs)("div",{className:"description",children:[Object(n.jsx)("h2",{children:r}),a&&Object(n.jsx)("h3",{children:a}),Object(n.jsx)("p",{children:s})]})]})}):Object(n.jsx)("a",{className:"FourByOne GridElement Link",href:c,target:"_blank",rel:"noreferrer",children:Object(n.jsxs)("div",{className:"GridElementInternal",children:[Object(n.jsxs)("div",{className:"image",children:[Object(n.jsx)("img",{src:t,alt:i}),Object(n.jsx)(p.a,{className:"LinkIcon"})]}),Object(n.jsxs)("div",{className:"description",children:[Object(n.jsx)("h2",{children:r}),a&&Object(n.jsx)("h3",{children:a}),Object(n.jsx)("p",{children:s})]})]})})},D=function(){return Object(r.useEffect)((function(){var e=document.querySelector("#project-grid");if(e){var t=new x.a(e,{itemSelector:".GridElement",gutter:0,columnWidth:".GridSizer",percentPosition:!0});g()(e).on("progress",(function(){var e;null===(e=t.layout)||void 0===e||e.call(t)}))}})),Object(n.jsx)("div",{children:Object(n.jsxs)("div",{id:"project-grid-parent",children:[Object(n.jsxs)("div",{id:"project-header",children:[Object(n.jsx)("h2",{children:"> My Projects"}),Object(n.jsxs)("p",{children:["A gallery of some of my most interesting projects. Look for ",Object(n.jsx)(p.a,{}),", click those projects for more information!"]})]}),Object(n.jsxs)("div",{id:"project-grid",children:[Object(n.jsx)("div",{className:"GridSizer"}),Object(n.jsx)(y,{title:"ElaticMatch",org:"CodeDay",text:"A set of tools, including a custom suggestion and weighting system, as well as a custom matching algorithm that I wrote and used to match around 350 students to the best-fitting mentors in the CodeDay Labs summer internship program in 2020.",link:"https://github.com/codeday/labs-elastic-match"}),Object(n.jsx)(y,{title:"John Peter",org:"CodeDay",text:"John Peter is a Discord bot used for moderation and server management for Virtual CodeDay. It has a very extensive featureset, and has been used for multiple CodeDays and has worked with over 1000 students.",link:"https://github.com/codeday/johnpeter-discord"}),Object(n.jsx)(y,{title:"CopyMoji",org:"BetterDiscord",text:"An extension for the alternate discord client BetterDiscord that changes the functionality of copying emoji to copy the actual emoji characters rather than their names from the discord client.",link:"https://github.com/JakeCover/BetterDiscordExtensions/tree/main/plugins/CopyMoji"}),Object(n.jsx)(w,{image_url:f,image_alt:"CodeDay San Diego Logo",org:"CodeDay",title:"CodeDay San Diego",text:"A 24 hour hackathon occurring around the world a few times a year. I volunteered for and then later ran the San Diego event.",link:"https://event.codeday.org/sandiego"}),Object(n.jsx)(N,{image_url:"data:image/png;base64,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",image_alt:"Foresight Sports Logo",title:"Foresight Sports",text:"Foresight Sports creates advanced augmented reality sports experiences. I created multiple games using Unity that took data from their launch monitor technology and translated it into a seamless experience."}),Object(n.jsx)(w,{image_url:v,image_alt:"Distest Logo",title:"Distest",org:"Random Projects",text:"Distest is a testing library I wrote for Discord bots that allows for full integration tests of bots, improving the discord bot development workflow significantly. As far as I know, it's the only tool available for this sort of testing.",link:"https://github.com/JakeCover/distest"}),Object(n.jsx)(w,{image_url:A,image_alt:"Scoresaver Logo",title:"ScoreSaver",org:"Random Projects",text:"A Chrome extension to help you download beatsaber songs directly from ScoreSaber. No more searching for mapper names on BeatSaver, just download the newest ranked songs directly!",link:"https://github.com/JakeCover/ScoreSaverExtention"}),Object(n.jsx)(y,{title:"Personal Website",org:"Random Projects",text:"You're looking at it! There's not a whole lot to this, it's just a React site hosted on GitHub Pages, but I didn't know React before starting on this so I'm pretty proud of it.",link:"https://github.com/JakeCover/PersonalWebsite_Static"}),Object(n.jsx)(w,{image_url:k,image_alt:"HashiCorp Logo",title:"Hashicorp Stack Sysadmin",org:"CodeDay, Random Projects",text:"I've setup and used a stack consisting of Nomad, Consul, and Vault along with Traefik both at CodeDay, where it runs almost every service we have, as well as at home, where I use it to run a number of assorted services on a few old machines. I strongly recommend it, it's very powerful and not all that complex to get started with!"}),Object(n.jsx)(y,{title:"CodeDay",text:"CodeDay, an event by SRND, is a beginner-friendly 24 hour event for students that challenges\n attendees to create a game or an app."})]})]})})},I=i(61),M=i.n(I),S=i(85),C=i(46),G=(i(131),i(154)),J=i(86),T=i.n(J),B=function(){var e=Object(r.useState)("nothing"),t=Object(C.a)(e,2),i=(t[0],t[1],Object(r.useState)("no-one")),s=Object(C.a)(i,2),c=(s[0],s[1],function(){var e=Object(S.a)(M.a.mark((function e(){var t;return M.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,T.a.get("https://jsonplaceholder.typicode.com/posts");case 3:t=e.sent,console.log(t.data),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.error(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}());return Object(r.useEffect)((function(){c();var e=setInterval(c,1e4);return function(){clearInterval(e)}}),[]),Object(n.jsx)("li",{children:"listening to ____ by ____"})},E=function(){var e=Object(r.useState)(Math.round(((new Date).getTime()-0xedb89b32e0)/1e3)),t=Object(C.a)(e,2),i=t[0],s=t[1],c=function(){s(Math.round(((new Date).getTime()-0xedb89b32e0)/1e3))};return Object(r.useEffect)((function(){c();var e=setInterval(c,1e3);return function(){clearInterval(e)}}),[]),Object(n.jsxs)("li",{children:[Object(n.jsx)("span",{style:{fontFamily:"Fira Code"},children:i})," seconds old"," "]})},R=function(){return Object(n.jsx)("div",{id:"about-me-parent",children:Object(n.jsxs)("div",{id:"about-me",className:"about-me-card",children:[Object(n.jsx)("h1",{children:" Hi! I'm Jake!"}),Object(n.jsxs)("div",{id:"info-parent",children:[Object(n.jsxs)("div",{id:"specific-info",children:[Object(n.jsx)("h2",{children:" A bit about me:"}),Object(n.jsxs)("ul",{children:[Object(n.jsxs)("li",{children:[Object(n.jsx)("b",{children:"Name"}),": Jake Cover"]}),Object(n.jsx)("li",{children:"Occupation: Student"}),Object(n.jsx)("li",{children:"Location: Southern California"}),Object(n.jsxs)("li",{children:["Projects:"," ",Object(n.jsx)("button",{onClick:function(){var e;return null===(e=document.getElementById("project-header"))||void 0===e?void 0:e.scrollIntoView({behavior:"smooth",block:"start"})},children:"Down there"})]}),Object(n.jsxs)("li",{children:["Resume: ",Object(n.jsx)(a.b,{to:"/resume",children:"Over here"})]}),Object(n.jsxs)("li",{children:["Find Me:",Object(n.jsxs)("ul",{children:[Object(n.jsxs)("li",{children:["Email: ",Object(n.jsx)("button",{onClick:function(){window.prompt("Thanks for being a human! Here's my email:",atob("Y29udGFjdEBqYWtlY292ZXIubWU="))},children:"Click This"})]}),Object(n.jsxs)("li",{children:["Twitter:"," ",Object(n.jsx)(G.a,{title:":(",children:Object(n.jsx)("a",{href:"https://github.com/JakeCover",target:"_blank",rel:"noreferrer",children:"@cobular_"})})]}),Object(n.jsxs)("li",{children:["GitHub:"," ",Object(n.jsx)("a",{href:"https://github.com/JakeCover",target:"_blank",rel:"noreferrer",children:"JakeCover"})]}),Object(n.jsxs)("li",{children:["Telegram:"," ",Object(n.jsx)("a",{href:"https://t.me/cobular",target:"_blank",rel:"noreferrer",children:"@cobular"})]}),Object(n.jsx)("li",{children:"Elsewhere: Probably @cobular"})]})]})]})]}),Object(n.jsxs)("div",{id:"fun-info",children:[Object(n.jsx)("h2",{children:"I'm:"}),Object(n.jsxs)("ul",{children:[Object(n.jsx)(E,{}),Object(n.jsx)(B,{}),Object(n.jsx)("li",{children:"doing (general stuff - in class, projects, sleeping, games)"})]})]})]})]})})},Y=function(){return Object(n.jsxs)("div",{id:"home",children:[Object(n.jsx)(R,{}),Object(n.jsx)(D,{})]})},H=function(){return Object(n.jsx)("div",{children:Object(n.jsx)("h1",{style:{margin:"auto"},children:"Resume"})})},P=function(){return Object(n.jsx)("main",{children:Object(n.jsxs)(b.c,{children:[Object(n.jsx)(b.a,{exact:!0,path:"/",component:Y}),Object(n.jsx)(b.a,{path:"/contact",component:m}),Object(n.jsx)(b.a,{path:"/resume",component:H})]})})};var U=function(){return Object(n.jsxs)("div",{className:"App",style:{maxWidth:1823,margin:"auto"},children:[Object(n.jsx)(h,{}),Object(n.jsx)(P,{}),Object(n.jsx)(o,{})]})},X=function(e){e&&e instanceof Function&&i.e(3).then(i.bind(null,158)).then((function(t){var i=t.getCLS,n=t.getFID,r=t.getFCP,s=t.getLCP,c=t.getTTFB;i(e),n(e),r(e),s(e),c(e)}))};c.a.render(Object(n.jsx)(a.a,{children:Object(n.jsx)(U,{})}),document.getElementById("root")),X()}},[[150,1,2]]]);
-//# sourceMappingURL=main.9aecfc74.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.9aecfc74.chunk.js.map b/static/js/main.9aecfc74.chunk.js.map
deleted file mode 100644
index 13cec1f..0000000
--- a/static/js/main.9aecfc74.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/Footer.tsx","components/Header.tsx","components/Contact.tsx","images/SanDiego.svg","images/distest.svg","images/scoresaver.svg","images/HashiCorp_Logo_no_text.png","components/ProjectGrid.tsx","images/foresightsports.png","components/AboutMe.tsx","components/Home.tsx","components/Resume.tsx","components/Main.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["Footer","className","to","href","Header","id","onClick","x","document","getElementById","showHideHamburger","MenuOutlined","target","rel","Contact","style","margin","OneWide","title","text","link","org","undefined","LinkOutlined","OneWidePic","image_url","image_alt","src","alt","FourByOneGridElement","ProjectGrid","useEffect","elem","querySelector","msnry","Masonry","itemSelector","gutter","columnWidth","percentPosition","ImagesLoaded","on","layout","CodeDaySD","Distest","Scoresaver","Hashicorp","LastFmLi","useState","updateNowPlaying","a","axios","get","songData","console","log","data","error","interval","setInterval","clearInterval","Age","Math","round","Date","getTime","age","setAge","UpdateAge","fontFamily","AboutMe","scrollIntoView","behavior","block","window","prompt","atob","Home","Resume","Main","exact","path","component","App","maxWidth","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render"],"mappings":"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","file":"static/js/main.9aecfc74.chunk.js","sourcesContent":["import \"./Footer.scss\"\nimport { Link } from \"react-router-dom\";\n\n\nexport const Footer = () => {\n return (\n \n );\n};\n","import React from \"react\";\nimport \"./Header.scss\";\nimport { Button, Space } from \"antd\";\nimport { Link } from \"react-router-dom\";\nimport { MenuOutlined } from \"@ant-design/icons\";\n\nexport const Header = () => {\n function showHideHamburger() {\n var x = document.getElementById(\"myHeader\");\n // @ts-ignore\n if (x.className === \"header\") {\n // @ts-ignore\n x.className += \" responsive\";\n } else {\n // @ts-ignore\n x.className = \"header\";\n }\n }\n\n return (\n \n \n
\n )\n}\n","export default __webpack_public_path__ + \"static/media/SanDiego.35f8cc09.svg\";","export default __webpack_public_path__ + \"static/media/distest.6bf47b83.svg\";","export default __webpack_public_path__ + \"static/media/scoresaver.3f65e348.svg\";","export default __webpack_public_path__ + \"static/media/HashiCorp_Logo_no_text.344aecaa.png\";","/**\n * TODO:\n * - For things that can't be linked, use to signal that clicking will open a modal https://ant.design/components/modal/\n * in order to give a more complex writeup and some pictures\n * - Tooltip for modal and linkable items, possibly which displays a modal with an example card with tooltips or explanations\n * - Footer\n * - Responsive top bar\n *\n */\n\nimport \"./ProjectGrid.scss\";\nimport Masonry from \"masonry-layout\";\nimport ImagesLoaded from \"imagesloaded\";\n\nimport { useEffect } from \"react\";\nimport {LinkOutlined} from \"@ant-design/icons\";\nimport CodeDaySD from \"../images/SanDiego.svg\";\nimport Foresight from \"../images/foresightsports.png\";\nimport Distest from \"../images/distest.svg\";\nimport Scoresaver from \"../images/scoresaver.svg\";\nimport Hashicorp from \"../images/HashiCorp_Logo_no_text.png\";\n\n\ntype GridElementImageProps = {\n image_url: string;\n image_alt: string;\n title: string;\n text: string;\n link?: string;\n org?: string;\n};\n\ntype GridElementProps = {\n title: string;\n text: string;\n link?: string;\n org?: string;\n};\n\nconst OneWide = ({ title, text, link, org }: GridElementProps) => {\n if (link === undefined) {\n return (\n
\n)\n}\n","import { Route, Switch } from \"react-router-dom\";\nimport { Contact } from \"./Contact\";\nimport { Home } from \"./Home\";\nimport { Resume } from \"./Resume\";\n\nexport const Main = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport \"./App.scss\";\nimport { Footer } from \"./components/Footer\";\nimport { Header } from \"./components/Header\";\nimport { Main } from \"./components/Main\";\n\nfunction App() {\n return (\n
\n \n \n \n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\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.scss\";\nimport \"./imports.scss\"\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { HashRouter } from \"react-router-dom\";\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":""}
\ No newline at end of file