replace/2556b09f758e013fb71e19e30dcde8a0b32c3d0f
github-actions[bot] 5 years ago
parent c65fbeab6a
commit 7b1700abb9

@ -1,40 +0,0 @@
@import '~antd/dist/antd.css';
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

@ -1,9 +0,0 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

@ -1,17 +0,0 @@
import React from "react";
import "./App.scss";
import { Footer } from "./components/Footer";
import { Header } from "./components/Header";
import { Main } from "./components/Main";
function App() {
return (
<div className="App" style={{maxWidth: 1823, margin: "auto"}}>
<Header />
<Main />
<Footer />
</div>
);
}
export default App;

@ -1 +0,0 @@
jakecover.me

@ -0,0 +1,29 @@
{
"files": {
"main.css": "/static/css/main.f31ed6c9.chunk.css",
"main.js": "/static/js/main.8c8906ca.chunk.js",
"main.js.map": "/static/js/main.8c8906ca.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.4a8ff0c5.js",
"runtime-main.js.map": "/static/js/runtime-main.4a8ff0c5.js.map",
"static/css/2.85610714.chunk.css": "/static/css/2.85610714.chunk.css",
"static/js/2.c916e45f.chunk.js": "/static/js/2.c916e45f.chunk.js",
"static/js/2.c916e45f.chunk.js.map": "/static/js/2.c916e45f.chunk.js.map",
"static/js/3.388ffdd5.chunk.js": "/static/js/3.388ffdd5.chunk.js",
"static/js/3.388ffdd5.chunk.js.map": "/static/js/3.388ffdd5.chunk.js.map",
"index.html": "/index.html",
"static/css/2.85610714.chunk.css.map": "/static/css/2.85610714.chunk.css.map",
"static/css/main.f31ed6c9.chunk.css.map": "/static/css/main.f31ed6c9.chunk.css.map",
"static/js/2.c916e45f.chunk.js.LICENSE.txt": "/static/js/2.c916e45f.chunk.js.LICENSE.txt",
"static/media/HashiCorp_Logo_no_text.344aecaa.png": "/static/media/HashiCorp_Logo_no_text.344aecaa.png",
"static/media/SanDiego.35f8cc09.svg": "/static/media/SanDiego.35f8cc09.svg",
"static/media/distest.6bf47b83.svg": "/static/media/distest.6bf47b83.svg",
"static/media/scoresaver.3f65e348.svg": "/static/media/scoresaver.3f65e348.svg"
},
"entrypoints": [
"static/js/runtime-main.4a8ff0c5.js",
"static/css/2.85610714.chunk.css",
"static/js/2.c916e45f.chunk.js",
"static/css/main.f31ed6c9.chunk.css",
"static/js/main.8c8906ca.chunk.js"
]
}

@ -1,86 +0,0 @@
#about-me-parent {
margin-left: 10px;
margin-right: 10px;
display: flex;
flex-direction: row;
justify-content: center;
b {
font-weight: 600;
}
.about-me-card {
background: #61dafb;
border-radius: 5px;
margin: 0 5px 0;
padding: 10px;
width: fit-content;
}
#about-me {
background: #61dafb;
border-radius: 5px;
padding: 15px;
width: fit-content;
#info-parent {
display: flex;
flex-direction: row;
#specific-info {
flex: 1 1 0;
}
#fun-info {
flex: 1 1 0;
}
@media screen and (max-width: 660px) {
flex-direction: column;
}
}
h1 {
font-family: "Fira Code", monospace;
font-weight: 500;
}
h2 {
font-family: "Fira Code", monospace;
line-height: normal;
margin-bottom: 0;
font-weight: 400;
text-align: left;
}
p {
font-family: "Montserrat", sans-serif;
font-size: 16px;
margin: 0;
}
ul {
text-align: left;
padding-left: 40px;
margin-bottom: 0;
}
li {
font-family: "Montserrat", sans-serif;
font-size: 18px;
list-style-type: symbols("+");
list-style-position: inside;
}
}
}
button {
background: none!important;
border: none;
padding: 0!important;
color: #1890ff;
cursor: pointer;
}

@ -1,177 +0,0 @@
import "./AboutMe.scss";
import { Link } from "react-router-dom";
import { Tooltip } from "antd";
import { useState, useEffect } from "react";
import axios from "axios";
const TelegramOutlinedSvg = () => {
return (
<svg
width="24px"
height="24px"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
style={{
fillRule: "evenodd",
clipRule: "evenodd",
strokeLinejoin: "round",
strokeMiterlimit: 1.41421,
}}
>
<path
id="telegram-1"
d="M18.384,22.779c0.322,0.228 0.737,0.285 1.107,0.145c0.37,-0.141 0.642,-0.457 0.724,-0.84c0.869,-4.084 2.977,-14.421 3.768,-18.136c0.06,-0.28 -0.04,-0.571 -0.26,-0.758c-0.22,-0.187 -0.525,-0.241 -0.797,-0.14c-4.193,1.552 -17.106,6.397 -22.384,8.35c-0.335,0.124 -0.553,0.446 -0.542,0.799c0.012,0.354 0.25,0.661 0.593,0.764c2.367,0.708 5.474,1.693 5.474,1.693c0,0 1.452,4.385 2.209,6.615c0.095,0.28 0.314,0.5 0.603,0.576c0.288,0.075 0.596,-0.004 0.811,-0.207c1.216,-1.148 3.096,-2.923 3.096,-2.923c0,0 3.572,2.619 5.598,4.062Zm-11.01,-8.677l1.679,5.538l0.373,-3.507c0,0 6.487,-5.851 10.185,-9.186c0.108,-0.098 0.123,-0.262 0.033,-0.377c-0.089,-0.115 -0.253,-0.142 -0.376,-0.064c-4.286,2.737 -11.894,7.596 -11.894,7.596Z"
/>
</svg>
);
};
const LastFmLi = () => {
const [nowPlayingSong, setNowPlayingSong] = useState<string>("nothing");
const [nowPlayingArtist, setNowPlayingArtist] = useState<string>("no-one");
const updateNowPlaying = async () => {
try {
const songData = await axios.get(
"https://jsonplaceholder.typicode.com/posts"
);
console.log(songData.data);
} catch (err) {
console.error(err);
}
};
useEffect(() => {
updateNowPlaying();
const interval = setInterval(updateNowPlaying, 10000);
return () => {
clearInterval(interval);
};
}, []);
return <li>listening to ____ by ____</li>;
};
const Age = () => {
const [age, setAge] = useState(
Math.round((new Date().getTime() - 1021004428000) / 1000)
);
const UpdateAge = () => {
setAge(Math.round((new Date().getTime() - 1021004428000) / 1000));
};
useEffect(() => {
UpdateAge();
const interval = setInterval(UpdateAge, 1000);
return () => {
clearInterval(interval);
};
}, []);
return (
<li>
<span style={{ fontFamily: "Fira Code" }}>{age}</span> seconds old{" "}
</li>
);
};
export const AboutMe = () => {
const EmailHandler = () => {
const email = "Y29udGFjdEBqYWtlY292ZXIubWU=";
window.prompt("Thanks for being a human! Here's my email:", atob(email));
};
return (
<div id={"about-me-parent"}>
<div id={"about-me"} className={"about-me-card"}>
<h1> Hi! I'm Jake!</h1>
<div id={"info-parent"}>
<div id={"specific-info"}>
<h2> A bit about me:</h2>
<ul>
<li>
<b>Name</b>: Jake Cover
</li>
<li>Occupation: Student</li>
<li>Location: Southern California</li>
<li>
Projects:{" "}
<button
onClick={() =>
document.getElementById("project-header")?.scrollIntoView({
behavior: "smooth",
block: "start",
})
}
>
Down there
</button>
</li>
<li>
Resume: <Link to={"/resume"}>Over here</Link>
</li>
<li>
Find Me:
<ul>
<li>
Email: <button onClick={EmailHandler}>Click This</button>
</li>
<li>
Twitter:{" "}
<Tooltip title={":("}>
<a
href={"https://github.com/JakeCover"}
target="_blank"
rel="noreferrer"
>
@cobular_
</a>
</Tooltip>
</li>
<li>
GitHub:{" "}
<a
href={"https://github.com/JakeCover"}
target="_blank"
rel="noreferrer"
>
JakeCover
</a>
</li>
<li>
Telegram:{" "}
<a
href={"https://t.me/cobular"}
target="_blank"
rel="noreferrer"
>
@cobular
</a>
</li>
<li>Elsewhere: Probably @cobular</li>
</ul>
</li>
</ul>
</div>
<div id={"fun-info"}>
<h2>I'm:</h2>
<ul>
<Age />
<LastFmLi />
<li>
doing (general stuff - in class, projects, sleeping, games)
</li>
</ul>
</div>
</div>
</div>
</div>
);
};

@ -1,7 +0,0 @@
export const Contact = () => {
return (
<div>
<h1 style={{margin: "auto"}}>Contact</h1>
</div>
)
}

@ -1,49 +0,0 @@
.site-footer {
background: darkgrey;
margin: 10px;
border-radius: 5px;
h2 {
font-family: "Fira Code", monospace;
margin: 0;
}
p {
font-family: "Montserrat", sans-serif;
@media screen and (min-width: 900px) {
font-size: 16px;
}
}
}
.footer-grid {
display: flex;
justify-content: space-evenly;
.blurb {
flex: 9;
}
.links-container {
flex: 4;
}
.footer-links {
padding-left: 0;
margin: 0;
columns: 100px 2;
li {
list-style: none;
}
a {
//color: black;
font-family: "Montserrat", sans-serif;
text-decoration: underline;
}
}
}

@ -1,41 +0,0 @@
import "./Footer.scss"
import { Link } from "react-router-dom";
export const Footer = () => {
return (
<footer className="site-footer">
<div className="footer-grid">
<div className="blurb">
<p className="text-justify">
Made with and by Jake Cover, a CS student who really needs to find something
witty and interesting to put here soon. Feel free to reach out!
<br />
Checklist Icon by Arthur Shlain from the Noun Project
</p>
</div>
<div className="links-container">
<h2>Links and Stuff</h2>
<ul className="footer-links">
<li>
<Link to={"/"}>Home</Link>
</li>
<li>
<Link to={"/contact"}>Contact</Link>
</li>
<li>
<Link to={"/resume"}>Resume</Link>
</li>
<li>
<a href="https://github.com/JakeCover">GitHub</a>
</li>
</ul>
</div>
</div>
<hr />
<div className="copyright-text">
Copyright &copy; 2020 All Rights Reserved by Jake Cover
</div>
</footer>
);
};

@ -1,89 +0,0 @@
header {
display: flex;
flex-direction: row;
margin: 10px;
padding: 10px;
border-radius: 5px;
background: #66bb6a;
font-family: "Fira Code", monospace;
h1 {
font-weight: 600;
margin: 0 0 0 5px;
}
.headerLinks {
display: flex;
flex-direction: row;
align-content: center;
margin-left: auto;
h2 {
margin: 0;
border-radius: 5px;
line-height: normal;
&:hover {
background: #ddd;
}
&.active {
background-color: #4CAF50;
color: white;
}
}
h2:last-of-type {
margin-right: 5px;
}
}
/* Hide the link that should open and close the topnav on small screens */
.icon {
display: none;
}
@media screen and (max-width: 660px) {
h2 {
display: none;
}
.icon {
margin-left: auto;
display: block;
position: absolute;
top: 19px;
right: 24px;
font-size: 30px;
border: none;
}
.headerLinks {
visibility: hidden;
transition: visibility 0s, opacity 0.5s linear;
}
}
@media screen and (max-width: 660px) {
&.responsive {
display: block;
.headerLinks {
visibility: visible;
display: flex;
flex-direction: column;
align-items: flex-start;
}
h1 {
text-align: left;
}
h2 {
display: block;
margin-left: 5px;
}
}
}
}

@ -1,55 +0,0 @@
import React from "react";
import "./Header.scss";
import { Button, Space } from "antd";
import { Link } from "react-router-dom";
import { MenuOutlined } from "@ant-design/icons";
export const Header = () => {
function showHideHamburger() {
var x = document.getElementById("myHeader");
// @ts-ignore
if (x.className === "header") {
// @ts-ignore
x.className += " responsive";
} else {
// @ts-ignore
x.className = "header";
}
}
return (
<header className={"header"} id={"myHeader"}>
<Link to="/" className="navbar-brand">
<h1>Jake Cover</h1>
</Link>
<Button
href={void 0}
className="icon"
onClick={() => showHideHamburger()}
>
<MenuOutlined className={"fa fa-bars"} />
</Button>
<Space className={"headerLinks"}>
<Link className="nav-link" to="/">
<h2>Home</h2>
</Link>
<Link className="nav-link" to="/contact">
<h2>Contact</h2>
</Link>
<Link className="nav-link" to="/resume">
<h2>Resume</h2>
</Link>
<a
className="nav-link"
href="https://github.com/JakeCover"
target="_blank"
rel="noreferrer"
>
<h2>GitHub</h2>
</a>
</Space>
</header>
);
};

@ -1,12 +0,0 @@
import "./Home.scss";
import { ProjectGrid } from "./ProjectGrid";
import {AboutMe} from "./AboutMe";
export const Home = () => {
return (
<div id={"home"}>
<AboutMe />
<ProjectGrid />
</div>
);
};

@ -1,16 +0,0 @@
import { Route, Switch } from "react-router-dom";
import { Contact } from "./Contact";
import { Home } from "./Home";
import { Resume } from "./Resume";
export const Main = () => {
return (
<main>
<Switch>
<Route exact={true} path={"/"} component={Home} />
<Route path={"/contact"} component={Contact} />
<Route path={"/resume"} component={Resume} />
</Switch>
</main>
);
};

@ -1,189 +0,0 @@
@import "~include-media/dist/_include-media.scss";
$breakpoints: (x-small: 400px, small: 660px, medium: 900px, large: 1300px, x-large: 1560px);
// Override Sass min()
@function min($numbers...) {
@return m#{i}n(#{$numbers});
}
// Override Sass max()
@function max($numbers...) {
@return m#{a}x(#{$numbers});
}
#project-grid-parent {
margin: 10px;
background: #FFD43B;
border-radius: 5px;
& > #project-header {
background: grey;
border-radius: 5px 5px 0 0;
margin-bottom: 2px;
padding: 5px;
h2 {
margin-bottom: 0;
font-family: "Fira Code", monospace;
font-size: 24px;
}
p {
margin: 0 0 3px;
font-family: "Montserrat", sans-serif;
font-size: 18px;
}
}
}
#project-grid {
//padding: 10px;
@include media("<=x-small") {
.GridSizer, .OneWide, .FourByOne {
width: 100%;
}
}
@include media(">x-small", "<small") {
.GridSizer, .OneWide {
width: 49%;
}
.FourByOne {
width: 100%;
}
}
@include media(">=small", "<medium") {
.GridSizer, .OneWide {
width: 33%;
}
.FourByOne {
width: 99%;
}
}
@include media(">=medium", "<large") {
.GridSizer, .OneWide {
width: 24.9%;
}
.FourByOne {
width: 74.6%;
}
}
@include media(">=large", "<x-large") {
.GridSizer, .OneWide {
max-width: 300px;
width: 19.9%;
}
.FourByOne {
width: 59.5%;
max-width: 900px;
}
}
@include media(">=x-large") {
.GridSizer, .OneWide {
width: 300px;
}
.FourByOne {
width: 900px;
}
}
}
.GridElement {
padding: 5px;
.GridElementInternal {
padding: 9px;
border-radius: 5px;
background: lightcyan;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
transition: box-shadow 0.3s ease-in-out;
}
.GridElementInternal:hover {
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}
h2 {
font-family: "Fira Code", monospace;
font-weight: 400;
margin-bottom: 0px;
line-height: normal;
}
h3 {
line-height: normal;
color: darkgrey;
margin-bottom: 3px;
}
p {
font-family: "Montserrat", sans-serif;
color: black;
margin-bottom: 0;
}
}
.OneWide {
display: flex;
flex-direction: column;
width: available;
img {
width: 100%;
margin-bottom: 5px;
}
}
.FourByOne {
.GridElementInternal {
display: flex;
align-items: center;
.image {
flex: 1;
img {
width: 100%;
max-width: 100%;
}
}
.description {
min-width: 20ch;
width: 30ch;
}
@include media(">small") {
flex-direction: row;
}
@include media("<=small") {
flex-direction: column;
.description {
width: 95%;
}
}
}
}
.LinkIcon {
position: absolute;
right: 12px;
top: 12px;
font-size: 24px;
color: black;
background: rgba(224, 255, 255, 0.7);
border-radius: 5px;
}

@ -1,265 +0,0 @@
/**
* TODO:
* - For things that can't be linked, use <ExpandAltOutlined /> to signal that clicking will open a modal https://ant.design/components/modal/
* in order to give a more complex writeup and some pictures
* - Tooltip for modal and linkable items, possibly <QuestionCircleOutlined /> which displays a modal with an example card with tooltips or explanations
* - Footer
* - Responsive top bar
*
*/
import "./ProjectGrid.scss";
import Masonry from "masonry-layout";
import { useEffect } from "react";
import {LinkOutlined} from "@ant-design/icons";
import CodeDaySD from "../images/SanDiego.svg";
import Foresight from "../images/foresightsports.png";
import Distest from "../images/distest.svg";
import Scoresaver from "../images/scoresaver.svg";
import Hashicorp from "../images/HashiCorp_Logo_no_text.png";
type GridElementImageProps = {
image_url: string;
image_alt: string;
title: string;
text: string;
link?: string;
org?: string;
};
type GridElementProps = {
title: string;
text: string;
link?: string;
org?: string;
};
const OneWide = ({ title, text, link, org }: GridElementProps) => {
if (link === undefined) {
return (
<div className={"OneWide GridElement"}>
<div className={"GridElementInternal"}>
<div className={"title"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
</div>
<div className={"description"}>
<p>{text}</p>
</div>
</div>
</div>
);
}
return (
<a className={"OneWide GridElement Link"} href={link} rel={"noreferrer"} target={"_blank"}>
<div className={"GridElementInternal"}>
<div className={"title"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
<LinkOutlined className={"LinkIcon"}/>
</div>
<div className={"description"}>
<p>{text}</p>
</div>
</div>
</a>
);
};
const OneWidePic = ({
image_url,
image_alt,
title,
text,
link,
org,
}: GridElementImageProps) => {
if (link === undefined) {
return (
<div className={"OneWide Pic GridElement"}>
<div className={"GridElementInternal"}>
<div className={"image"}>
<img src={image_url} alt={image_alt} />
</div>
<div className={"description"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
<p>{text}</p>
</div>
</div>
</div>
);
}
return (
<a className={"OneWide Pic GridElement Link"} href={link} target={"_blank"} rel={"noreferrer"}>
<div className={"GridElementInternal"}>
<div className={"image"}>
<img src={image_url} alt={image_alt} />
<LinkOutlined className={"LinkIcon"}/>
</div>
<div className={"description"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
<p>{text}</p>
</div>
</div>
</a>
);
};
const FourByOneGridElement = ({
image_url,
image_alt,
title,
text,
link,
org,
}: GridElementImageProps) => {
if (link === undefined) {
return (
<div className={"FourByOne GridElement"}>
<div className={"GridElementInternal"}>
<div className={"image"}>
<img src={image_url} alt={image_alt} />
</div>
<div className={"description"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
<p>{text}</p>
</div>
</div>
</div>
);
}
return (
<a className={"FourByOne GridElement Link"} href={link} target={"_blank"} rel={"noreferrer"}>
<div className={"GridElementInternal"}>
<div className={"image"}>
<img src={image_url} alt={image_alt} />
<LinkOutlined className={"LinkIcon"}/>
</div>
<div className={"description"}>
<h2>{title}</h2>
{org && <h3>{org}</h3>}
<p>{text}</p>
</div>
</div>
</a>
);
};
export const ProjectGrid = () => {
useEffect(() => {
var elem = document.querySelector("#project-grid");
// @ts-ignore
var msnry = new Masonry(elem, {
itemSelector: ".GridElement",
gutter: 0,
columnWidth: ".GridSizer",
percentPosition: true,
});
});
return (
<div>
<div id={"project-grid-parent"}>
<div id={"project-header"}>
<h2>&lt;/&gt; My Projects</h2>
<p>
A gallery of some of my most interesting projects. Look for <LinkOutlined />, click those projects for more information!
</p>
</div>
<div id={"project-grid"}>
<div className={"GridSizer"}/>
<OneWide
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"}
/>
<OneWide
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"}
/>
<OneWide
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"}
/>
<OneWidePic
image_url={CodeDaySD}
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"}
/>
<FourByOneGridElement
image_url={Foresight}
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."
}
/>
<OneWidePic
image_url={Distest}
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"}
/>
<OneWidePic
image_url={Scoresaver}
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"}
/>
<OneWide
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"}
/>
<OneWidePic
image_url={Hashicorp}
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!"
}
/>
<OneWide
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."
}
/>
</div>
</div>
</div>
);
};

@ -1,7 +0,0 @@
export const Resume = () => {
return (
<div>
<h1 style={{margin: "auto"}}>Resume</h1>
</div>
)
}

@ -1,33 +0,0 @@
import {useEffect, useState} from "react";
export function useWindowSize() {
// Initialize state with undefined width/height so server and client renders match
// Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
const [windowSize, setWindowSize] = useState({
width: 0,
height: 0,
});
useEffect(() => {
// Handler to call on window resize
function handleResize() {
// Set window width/height to state
setWindowSize({
width: window.innerWidth,
height: window.innerHeight,
});
}
// Add event listener
window.addEventListener("resize", handleResize);
// Call handler right away so state gets updated with initial window size
handleResize();
// Remove event listener on cleanup
return () => window.removeEventListener("resize", handleResize);
}, []); // Empty array ensures that effect is only run on mount
return windowSize;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><defs><style>.a{fill:#ff686b}</style></defs><title>codeday-notext-color</title><path d="M229.59,536.94l-61.88,58.19a20,20,0,0,0,0,28.93c33.47,32.24,84,76.61,84,76.61S396.18,827.2,458.58,916.82L494.2,968a20,20,0,0,0,33-.36l34.44-52C621.87,824.78,769.37,694,769.37,694s44.6-39.58,75.51-69a19.81,19.81,0,0,0,4.62-6.71,20,20,0,0,0-5-22.53L781.6,538.62a19.91,19.91,0,0,0-27.31.48L522.53,764.27a19.94,19.94,0,0,1-27.67,0L257.08,537a20,20,0,0,0-27.49-.09Z" class="a"/><path d="M266.58,26.41a281.17,281.17,0,0,0-249.39,269c-3.43,99.3,25.28,174.46,70.58,238.67a9.58,9.58,0,0,0,14.47,1.49l77.88-73.35a9.46,9.46,0,0,0,1.59-12,250.25,250.25,0,0,1-40.15-138.84A163.4,163.4,0,0,1,304.8,148.23a178.05,178.05,0,0,1,95.92,31.66c11.78,8.8,33.55,26.78,48.37,39.23a9.58,9.58,0,0,0,14.26-2.23,9.51,9.51,0,0,0,1.49-5.16V76.45A9.58,9.58,0,0,0,462.37,70C451.12,57.59,399.53,11.32,266.58,26.41Z" class="a"/><path d="M733.41,26.41a281.2,281.2,0,0,1,249.4,269c3.47,99.3-25.25,174.46-70.37,238.67a9.66,9.66,0,0,1-6.89,4.07,9.59,9.59,0,0,1-7.58-2.58l-78.1-73.35a9.58,9.58,0,0,1-1.58-12,250,250,0,0,0,40.15-138.84,163.37,163.37,0,0,0-163.2-163.15,178.05,178.05,0,0,0-95.92,31.66c-11.79,8.8-33.55,26.78-48.38,39.23a9.56,9.56,0,0,1-10.22,1.33,9.62,9.62,0,0,1-5.52-8.72V76.45A9.44,9.44,0,0,1,537.71,70C548.92,57.59,600.64,11.32,733.41,26.41Z" class="a"/><path d="M854.24,894.26a57.17,57.17,0,1,1-56.82-55.5,55.77,55.77,0,0,1,56.82,55.5Zm-99.79,0a43,43,0,0,0,43.28,44.33,42.49,42.49,0,0,0,42.31-44c0-24.71-17.95-44.68-42.62-44.68a43.1,43.1,0,0,0-43,44.33Zm35.81,28.94H777.07V867.7A117.23,117.23,0,0,1,798.81,866a35.67,35.67,0,0,1,19.63,4.09,15.59,15.59,0,0,1,4.2,5.47,15.12,15.12,0,0,1,1.35,6.72,14.07,14.07,0,0,1-3.65,8.37,14.53,14.53,0,0,1-8.09,4.47v1.09a16.8,16.8,0,0,1,7.06,5.29,16,16,0,0,1,3.27,8,40.77,40.77,0,0,0,4.11,13.68H812.61a44.9,44.9,0,0,1-4.47-13.33c-1-6-4.47-8.66-11.71-8.66h-6.17Zm0-30.78h6.12c7.08,0,12.84-2.38,12.84-8.14,0-5.06-3.74-8.44-11.83-8.44a32.81,32.81,0,0,0-7.13.66Z" class="a"/></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
@import url(https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Montserrat:wght@400;600;700&display=swap);

@ -0,0 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Jake Cover's Personal Website"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Jake Cover</title><link href="/static/css/2.85610714.chunk.css" rel="stylesheet"><link href="/static/css/main.f31ed6c9.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,i,a=t[0],c=t[1],l=t[2],f=0,p=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"388ffdd5"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){a.onerror=a.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this["webpackJsonppersonal-website-static"]=this["webpackJsonppersonal-website-static"]||[],c=a.push.bind(a);a.push=t,a=a.slice();for(var l=0;l<a.length;l++)t(a[l]);var s=c;r()}([])</script><script src="/static/js/2.c916e45f.chunk.js"></script><script src="/static/js/main.8c8906ca.chunk.js"></script></body></html>

@ -1,13 +0,0 @@
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}

@ -1,19 +0,0 @@
import React from "react";
import ReactDOM from "react-dom";
import "./index.scss";
import "./imports.scss"
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { HashRouter } from "react-router-dom";
ReactDOM.render(
<HashRouter>
<App />
</HashRouter>,
document.getElementById("root")
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@ -0,0 +1,25 @@
{
"short_name": "jakecover.me",
"name": "Jake Cover's Personal Website",
"icons": [
{
"src": "favicon.ico",
"sizes": "256x256 128x128 64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

@ -1 +0,0 @@
/// <reference types="react-scripts" />

@ -1,15 +0,0 @@
import { ReportHandler } from 'web-vitals';
const reportWebVitals = (onPerfEntry?: ReportHandler) => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

@ -1,5 +0,0 @@
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,76 @@
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/*!
Copyright (c) 2017 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* Masonry v4.2.2
* Cascading grid layout library
* https://masonry.desandro.com
* MIT License
* by David DeSandro
*/
/*!
* Outlayer v2.1.1
* the brains and guts of a layout library
* MIT license
*/
/*!
* getSize v2.0.3
* measure size of elements
* MIT license
*/
/** @license React v0.20.1
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.1
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.1
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.1
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
(this["webpackJsonppersonal-website-static"]=this["webpackJsonppersonal-website-static"]||[]).push([[3],{157:function(t,n,e){"use strict";e.r(n),e.d(n,"getCLS",(function(){return v})),e.d(n,"getFCP",(function(){return g})),e.d(n,"getFID",(function(){return h})),e.d(n,"getLCP",(function(){return y})),e.d(n,"getTTFB",(function(){return F}));var i,a,r=function(){return"".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)},o=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return{name:t,value:n,delta:0,entries:[],id:r(),isFinal:!1}},s=function(t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var e=new PerformanceObserver((function(t){return t.getEntries().map(n)}));return e.observe({type:t,buffered:!0}),e}}catch(t){}},u=!1,c=!1,p=function(t){u=!t.persisted},d=function(){addEventListener("pagehide",p),addEventListener("beforeunload",(function(){}))},f=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c||(d(),c=!0),addEventListener("visibilitychange",(function(n){var e=n.timeStamp;"hidden"===document.visibilityState&&t({timeStamp:e,isUnloading:u})}),{capture:!0,once:n})},l=function(t,n,e,i){var a;return function(){e&&n.isFinal&&e.disconnect(),n.value>=0&&(i||n.isFinal||"hidden"===document.visibilityState)&&(n.delta=n.value-(a||0),(n.delta||n.isFinal||void 0===a)&&(t(n),a=n.value))}},v=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=o("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=s("layout-shift",a);r&&(n=l(t,i,r,e),f((function(t){var e=t.isUnloading;r.takeRecords().map(a),e&&(i.isFinal=!0),n()})))},m=function(){return void 0===i&&(i="hidden"===document.visibilityState?0:1/0,f((function(t){var n=t.timeStamp;return i=n}),!0)),{get timeStamp(){return i}}},g=function(t){var n,e=o("FCP"),i=m(),a=s("paint",(function(t){"first-contentful-paint"===t.name&&t.startTime<i.timeStamp&&(e.value=t.startTime,e.isFinal=!0,e.entries.push(t),n())}));a&&(n=l(t,e,a))},h=function(t){var n=o("FID"),e=m(),i=function(t){t.startTime<e.timeStamp&&(n.value=t.processingStart-t.startTime,n.entries.push(t),n.isFinal=!0,r())},a=s("first-input",i),r=l(t,n,a);a?f((function(){a.takeRecords().map(i),a.disconnect()}),!0):window.perfMetrics&&window.perfMetrics.onFirstInputDelay&&window.perfMetrics.onFirstInputDelay((function(t,i){i.timeStamp<e.timeStamp&&(n.value=t,n.isFinal=!0,n.entries=[{entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+t}],r())}))},S=function(){return a||(a=new Promise((function(t){return["scroll","keydown","pointerdown"].map((function(n){addEventListener(n,t,{once:!0,passive:!0,capture:!0})}))}))),a},y=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=o("LCP"),a=m(),r=function(t){var e=t.startTime;e<a.timeStamp?(i.value=e,i.entries.push(t)):i.isFinal=!0,n()},u=s("largest-contentful-paint",r);if(u){n=l(t,i,u,e);var c=function(){i.isFinal||(u.takeRecords().map(r),i.isFinal=!0,n())};S().then(c),f(c,!0)}},F=function(t){var n,e=o("TTFB");n=function(){try{var n=performance.getEntriesByType("navigation")[0]||function(){var t=performance.timing,n={entryType:"navigation",startTime:0};for(var e in t)"navigationStart"!==e&&"toJSON"!==e&&(n[e]=Math.max(t[e]-t.navigationStart,0));return n}();e.value=e.delta=n.responseStart,e.entries=[n],e.isFinal=!0,t(e)}catch(t){}},"complete"===document.readyState?setTimeout(n,0):addEventListener("pageshow",n)}}}]);
//# sourceMappingURL=3.388ffdd5.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
!function(e){function t(t){for(var n,i,a=t[0],c=t[1],l=t[2],f=0,p=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"388ffdd5"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){a.onerror=a.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this["webpackJsonppersonal-website-static"]=this["webpackJsonppersonal-website-static"]||[],c=a.push.bind(a);a.push=t,a=a.slice();for(var l=0;l<a.length;l++)t(a[l]);var s=c;r()}([]);
//# sourceMappingURL=runtime-main.4a8ff0c5.js.map

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Loading…
Cancel
Save