diff --git a/.eslintcache b/.eslintcache index 085f8c4..ead0915 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -[{"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\index.tsx":"1","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\reportWebVitals.ts":"2","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\App.tsx":"3","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Header.tsx":"4","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Home.tsx":"5","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Main.tsx":"6","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Contact.tsx":"7","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Resume.tsx":"8","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\ProjectGrid.tsx":"9","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\cusotmHooks.ts":"10","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Footer.tsx":"11"},{"size":560,"mtime":1609455390298,"results":"12","hashOfConfig":"13"},{"size":440,"mtime":1609445337674,"results":"14","hashOfConfig":"13"},{"size":325,"mtime":1609478255067,"results":"15","hashOfConfig":"13"},{"size":1253,"mtime":1609469803899,"results":"16","hashOfConfig":"13"},{"size":567,"mtime":1609471849263,"results":"17","hashOfConfig":"13"},{"size":424,"mtime":1609448271170,"results":"18","hashOfConfig":"13"},{"size":142,"mtime":1609448138377,"results":"19","hashOfConfig":"13"},{"size":132,"mtime":1609448124025,"results":"20","hashOfConfig":"13"},{"size":8449,"mtime":1609478060725,"results":"21","hashOfConfig":"13"},{"size":1072,"mtime":1609462531624,"results":"22","hashOfConfig":"13"},{"size":1236,"mtime":1609479233269,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},"lcbj9u",{"filePath":"27","messages":"28","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"31","messages":"32","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"37","messages":"38","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\index.tsx",[],["47","48"],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\reportWebVitals.ts",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\App.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Header.tsx",["49"],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Home.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Main.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Contact.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Resume.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\ProjectGrid.tsx",["50"],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\cusotmHooks.ts",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Footer.tsx",[],{"ruleId":"51","replacedBy":"52"},{"ruleId":"53","replacedBy":"54"},{"ruleId":"55","severity":1,"message":"56","line":41,"column":9,"nodeType":"57","endLine":45,"endColumn":10},{"ruleId":"58","severity":1,"message":"59","line":157,"column":9,"nodeType":"60","messageId":"61","endLine":157,"endColumn":14},"no-native-reassign",["62"],"no-negated-in-lhs",["63"],"jsx-a11y/anchor-is-valid","The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md","JSXOpeningElement","@typescript-eslint/no-unused-vars","'msnry' is assigned a value but never used.","Identifier","unusedVar","no-global-assign","no-unsafe-negation"] \ No newline at end of file +[{"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\index.tsx":"1","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\reportWebVitals.ts":"2","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\App.tsx":"3","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Header.tsx":"4","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Home.tsx":"5","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Main.tsx":"6","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Contact.tsx":"7","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Resume.tsx":"8","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\ProjectGrid.tsx":"9","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\cusotmHooks.ts":"10","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Footer.tsx":"11","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\AboutMe.tsx":"12"},{"size":560,"mtime":1609455390298,"results":"13","hashOfConfig":"14"},{"size":440,"mtime":1609445337674,"results":"15","hashOfConfig":"14"},{"size":384,"mtime":1609720686967,"results":"16","hashOfConfig":"14"},{"size":1395,"mtime":1609720686979,"results":"17","hashOfConfig":"14"},{"size":235,"mtime":1609720686977,"results":"18","hashOfConfig":"14"},{"size":424,"mtime":1609644947153,"results":"19","hashOfConfig":"14"},{"size":142,"mtime":1609448138377,"results":"20","hashOfConfig":"14"},{"size":132,"mtime":1609448124025,"results":"21","hashOfConfig":"14"},{"size":9456,"mtime":1609720687002,"results":"22","hashOfConfig":"14"},{"size":1072,"mtime":1609462531624,"results":"23","hashOfConfig":"14"},{"size":1241,"mtime":1609720686985,"results":"24","hashOfConfig":"14"},{"size":5418,"mtime":1609720686980,"results":"25","hashOfConfig":"14"},{"filePath":"26","messages":"27","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},"lcbj9u",{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"31","messages":"32","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"37","messages":"38","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"45","usedDeprecatedRules":"28"},{"filePath":"46","messages":"47","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"28"},{"filePath":"50","messages":"51","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"52"},"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\index.tsx",[],["53","54"],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\reportWebVitals.ts",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\App.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Header.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Home.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Main.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Contact.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Resume.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\ProjectGrid.tsx",["55"],"/**\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 { 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

{title}

\n {org &&

{org}

}\n
\n
\n

{text}

\n
\n
\n
\n );\n }\n return (\n \n
\n
\n

{title}

\n {org &&

{org}

}\n \n
\n
\n

{text}

\n
\n
\n
\n );\n};\n\nconst OneWidePic = ({\n image_url,\n image_alt,\n title,\n text,\n link,\n org,\n}: GridElementImageProps) => {\n if (link === undefined) {\n return (\n
\n
\n
\n {image_alt}\n
\n
\n

{title}

\n {org &&

{org}

}\n\n

{text}

\n
\n
\n
\n );\n }\n return (\n \n
\n
\n {image_alt}\n \n
\n
\n

{title}

\n {org &&

{org}

}\n

{text}

\n
\n
\n
\n );\n};\n\nconst FourByOneGridElement = ({\n image_url,\n image_alt,\n title,\n text,\n link,\n org,\n}: GridElementImageProps) => {\n if (link === undefined) {\n return (\n
\n
\n
\n {image_alt}\n
\n
\n

{title}

\n {org &&

{org}

}\n

{text}

\n
\n
\n
\n );\n }\n return (\n \n
\n
\n {image_alt}\n \n
\n
\n

{title}

\n {org &&

{org}

}\n

{text}

\n
\n
\n
\n );\n};\n\nexport const ProjectGrid = () => {\n useEffect(() => {\n var elem = document.querySelector(\"#project-grid\");\n\n // @ts-ignore\n var msnry = new Masonry(elem, {\n itemSelector: \".GridElement\",\n gutter: 0,\n columnWidth: \".GridSizer\",\n percentPosition: true,\n });\n });\n\n return (\n
\n
\n
\n

</> My Projects

\n

\n A gallery of some of my most interesting projects. Look for , click those projects for more information!\n

\n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n );\n};\n","C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\cusotmHooks.ts",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\Footer.tsx",[],"C:\\Users\\jdc10\\Documents\\GitHub\\PersonalWebsite_Static\\src\\components\\AboutMe.tsx",["56","57","58","59","60"],"import \"./AboutMe.scss\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Tooltip } from \"antd\";\r\nimport { useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nconst TelegramOutlinedSvg = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst LastFmLi = () => {\r\n const [nowPlayingSong, setNowPlayingSong] = useState(\"nothing\");\r\n const [nowPlayingArtist, setNowPlayingArtist] = useState(\"no-one\");\r\n\r\n const updateNowPlaying = async () => {\r\n try {\r\n const songData = await axios.get(\r\n \"https://jsonplaceholder.typicode.com/posts\"\r\n );\r\n\r\n console.log(songData.data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n updateNowPlaying();\r\n\r\n const interval = setInterval(updateNowPlaying, 10000);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n }, []);\r\n return
  • listening to ____ by ____
  • ;\r\n};\r\n\r\nconst Age = () => {\r\n const [age, setAge] = useState(\r\n Math.round((new Date().getTime() - 1021004428000) / 1000)\r\n );\r\n\r\n const UpdateAge = () => {\r\n setAge(Math.round((new Date().getTime() - 1021004428000) / 1000));\r\n };\r\n\r\n useEffect(() => {\r\n UpdateAge();\r\n\r\n const interval = setInterval(UpdateAge, 1000);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n }, []);\r\n\r\n return (\r\n
  • \r\n {age} seconds old{\" \"}\r\n
  • \r\n );\r\n};\r\n\r\nexport const AboutMe = () => {\r\n const EmailHandler = () => {\r\n const email = \"Y29udGFjdEBqYWtlY292ZXIubWU=\";\r\n window.prompt(\"Thanks for being a human! Here's my email:\", atob(email));\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n

    Hi! I'm Jake!

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

    A bit about me:

    \r\n\r\n
      \r\n
    • \r\n Name: Jake Cover\r\n
    • \r\n
    • Occupation: Student
    • \r\n
    • Location: Southern California
    • \r\n
    • \r\n Projects:{\" \"}\r\n \r\n document.getElementById(\"project-header\")?.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n })\r\n }\r\n >\r\n Down there\r\n \r\n
    • \r\n
    • \r\n Resume: Over here\r\n
    • \r\n
    • \r\n Find Me:\r\n
        \r\n
      • \r\n Email: \r\n
      • \r\n
      • \r\n Twitter:{\" \"}\r\n \r\n \r\n @cobular_\r\n \r\n \r\n
      • \r\n
      • \r\n GitHub:{\" \"}\r\n \r\n JakeCover\r\n \r\n
      • \r\n
      • \r\n Telegram:{\" \"}\r\n \r\n @cobular\r\n \r\n
      • \r\n
      • Elsewhere: Probably @cobular
      • \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n

    I'm:

    \r\n
      \r\n \r\n \r\n
    • \r\n doing (general stuff - in class, projects, sleeping, games)\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n",{"ruleId":"61","replacedBy":"62"},{"ruleId":"63","replacedBy":"64"},{"ruleId":"65","severity":1,"message":"66","line":158,"column":9,"nodeType":"67","messageId":"68","endLine":158,"endColumn":14},{"ruleId":"65","severity":1,"message":"69","line":7,"column":7,"nodeType":"67","messageId":"68","endLine":7,"endColumn":26},{"ruleId":"65","severity":1,"message":"70","line":30,"column":10,"nodeType":"67","messageId":"68","endLine":30,"endColumn":24},{"ruleId":"65","severity":1,"message":"71","line":30,"column":26,"nodeType":"67","messageId":"68","endLine":30,"endColumn":43},{"ruleId":"65","severity":1,"message":"72","line":31,"column":10,"nodeType":"67","messageId":"68","endLine":31,"endColumn":26},{"ruleId":"65","severity":1,"message":"73","line":31,"column":28,"nodeType":"67","messageId":"68","endLine":31,"endColumn":47},"no-native-reassign",["74"],"no-negated-in-lhs",["75"],"@typescript-eslint/no-unused-vars","'msnry' is assigned a value but never used.","Identifier","unusedVar","'TelegramOutlinedSvg' is assigned a value but never used.","'nowPlayingSong' is assigned a value but never used.","'setNowPlayingSong' is assigned a value but never used.","'nowPlayingArtist' is assigned a value but never used.","'setNowPlayingArtist' is assigned a value but never used.","no-global-assign","no-unsafe-negation"] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ecc4f78..e30e83e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1211,35 +1211,6 @@ } } }, - "@fortawesome/fontawesome-common-types": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", - "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "1.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", - "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", - "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz", - "integrity": "sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA==", - "requires": { - "prop-types": "^15.7.2" - } - }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -3245,6 +3216,14 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.1.tgz", "integrity": "sha512-5Kgy8Cz6LPC9DJcNb3yjAXTu3XihQgEdnIg50c//zOC/MyLP0Clg+Y8Sh9ZjjnvBrDZU4DgXS9C3T9r4/scGZQ==" }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", diff --git a/package.json b/package.json index e1be82b..cbf10d4 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "react-router-dom": "^5.2.0", "react-scripts": "4.0.1", "typescript": "^4.1.3", - "web-vitals": "^0.2.4" + "web-vitals": "^0.2.4", + "axios": "^0.21.1" }, "scripts": { "start": "react-scripts start", diff --git a/public/favicon.ico b/public/favicon.ico index a11777c..09e45fa 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html index aa069f2..b4282fb 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ - React App + Jake Cover diff --git a/public/logo192.png b/public/logo192.png index fc44b0a..a7a3fae 100644 Binary files a/public/logo192.png and b/public/logo192.png differ diff --git a/public/logo512.png b/public/logo512.png index a4e47a6..2dd80b7 100644 Binary files a/public/logo512.png and b/public/logo512.png differ diff --git a/public/manifest.json b/public/manifest.json index 080d6c7..d775532 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,10 +1,10 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "jakecover.me", + "name": "Jake Cover's Personal Website", "icons": [ { "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", + "sizes": "256x256 128x128 64x64 32x32 24x24 16x16", "type": "image/x-icon" }, { diff --git a/src/App.tsx b/src/App.tsx index 4bbf9a0..4f481d3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,7 +6,7 @@ import { Main } from "./components/Main"; function App() { return ( -
    +
    diff --git a/src/components/AboutMe.scss b/src/components/AboutMe.scss new file mode 100644 index 0000000..26c7127 --- /dev/null +++ b/src/components/AboutMe.scss @@ -0,0 +1,86 @@ +#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; +} diff --git a/src/components/AboutMe.tsx b/src/components/AboutMe.tsx new file mode 100644 index 0000000..4370975 --- /dev/null +++ b/src/components/AboutMe.tsx @@ -0,0 +1,177 @@ +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 ( + + + + ); +}; + +const LastFmLi = () => { + const [nowPlayingSong, setNowPlayingSong] = useState("nothing"); + const [nowPlayingArtist, setNowPlayingArtist] = useState("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
  • listening to ____ by ____
  • ; +}; + +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 ( +
  • + {age} seconds old{" "} +
  • + ); +}; + +export const AboutMe = () => { + const EmailHandler = () => { + const email = "Y29udGFjdEBqYWtlY292ZXIubWU="; + window.prompt("Thanks for being a human! Here's my email:", atob(email)); + }; + + return ( +
    +
    +

    Hi! I'm Jake!

    + +
    +
    +

    A bit about me:

    + +
      +
    • + Name: Jake Cover +
    • +
    • Occupation: Student
    • +
    • Location: Southern California
    • +
    • + Projects:{" "} + +
    • +
    • + Resume: Over here +
    • +
    • + Find Me: + +
    • +
    +
    +
    +

    I'm:

    +
      + + +
    • + doing (general stuff - in class, projects, sleeping, games) +
    • +
    +
    +
    +
    +
    + ); +}; diff --git a/src/components/Footer.scss b/src/components/Footer.scss index 58fdb4c..8cdc4a2 100644 --- a/src/components/Footer.scss +++ b/src/components/Footer.scss @@ -10,6 +10,10 @@ p { font-family: "Montserrat", sans-serif; + + @media screen and (min-width: 900px) { + font-size: 16px; + } } } @@ -17,6 +21,14 @@ display: flex; justify-content: space-evenly; + .blurb { + flex: 9; + } + + .links-container { + flex: 4; + } + .footer-links { padding-left: 0; margin: 0; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 1b21019..4ee8cca 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,4 +1,6 @@ import "./Footer.scss" +import { Link } from "react-router-dom"; + export const Footer = () => { return ( @@ -16,16 +18,13 @@ export const Footer = () => {

    Links and Stuff

    • - Home -
    • -
    • - Contact + Home
    • - About + Contact
    • - Resume + Resume
    • GitHub diff --git a/src/components/Header.scss b/src/components/Header.scss index 01ff588..afefc08 100644 --- a/src/components/Header.scss +++ b/src/components/Header.scss @@ -22,6 +22,7 @@ header { h2 { margin: 0; border-radius: 5px; + line-height: normal; &:hover { background: #ddd; @@ -36,30 +37,52 @@ header { h2:last-of-type { margin-right: 5px; } + } + /* Hide the link that should open and close the topnav on small screens */ + .icon { + display: none; + } - /* Hide the link that should open and close the topnav on small screens */ - .icon { + @media screen and (max-width: 660px) { + h2 { 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; + } - .icon { - margin-left: auto; - display: block; - } + .headerLinks { + visibility: hidden; + transition: visibility 0s, opacity 0.5s linear; } } @media screen and (max-width: 660px) { &.responsive { - background: #282c34; + display: block; + + .headerLinks { + visibility: visible; + display: flex; + flex-direction: column; + align-items: flex-start; + } + + h1 { + text-align: left; + } + h2 { display: block; + margin-left: 5px; } } } diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 74b38de..e4e9bdb 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,9 +1,8 @@ import React from "react"; import "./Header.scss"; -import { Space } from "antd"; +import { Button, Space } from "antd"; import { Link } from "react-router-dom"; -import {MenuOutlined} from "@ant-design/icons"; - +import { MenuOutlined } from "@ant-design/icons"; export const Header = () => { function showHideHamburger() { @@ -23,6 +22,13 @@ export const Header = () => {

      Jake Cover

      + @@ -35,15 +41,13 @@ export const Header = () => {

      Resume

      - -

      GitHub

      -
      showHideHamburger()} + className="nav-link" + href="https://github.com/JakeCover" + target="_blank" + rel="noreferrer" > - +

      GitHub

    diff --git a/src/components/Home.scss b/src/components/Home.scss index 723b319..139597f 100644 --- a/src/components/Home.scss +++ b/src/components/Home.scss @@ -1,13 +1,2 @@ -#about-me { - background: #61dafb; - border-radius: 5px; - margin: 10px auto; - padding: 10px; - width: fit-content; - p { - font-family: "Montserrat", sans-serif; - font-size: 16px; - } -} diff --git a/src/components/Home.tsx b/src/components/Home.tsx index 054761e..6a1b872 100644 --- a/src/components/Home.tsx +++ b/src/components/Home.tsx @@ -1,16 +1,12 @@ -import "./Home.scss" -import {ProjectGrid} from "./ProjectGrid"; +import "./Home.scss"; +import { ProjectGrid } from "./ProjectGrid"; +import {AboutMe} from "./AboutMe"; export const Home = () => { - return ( -
    -
    -

    - Hi! I'm Jake, a CS student from the west coast! Take a look at some of my projects below!
    - This site is still under construction, so pardon the duplicate information and the horrendous colors. The final version should be up soon! -

    -
    - -
    - ) -} + return ( +
    + + +
    + ); +}; diff --git a/src/components/ProjectGrid.scss b/src/components/ProjectGrid.scss index 3c7c3cf..fd822a2 100644 --- a/src/components/ProjectGrid.scss +++ b/src/components/ProjectGrid.scss @@ -1,6 +1,6 @@ @import "~include-media/dist/_include-media.scss"; -$breakpoints: (x-small: 320px, small: 660px, medium: 900px, large: 1300px, x-large: 1560px); +$breakpoints: (x-small: 400px, small: 660px, medium: 900px, large: 1300px, x-large: 1560px); // Override Sass min() @function min($numbers...) { @@ -12,11 +12,36 @@ $breakpoints: (x-small: 320px, small: 660px, medium: 900px, large: 1300px, x-lar @return m#{a}x(#{$numbers}); } - -#project-grid { +#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") { @@ -36,26 +61,26 @@ $breakpoints: (x-small: 320px, small: 660px, medium: 900px, large: 1300px, x-lar @include media(">=small", "=medium", "=large", " { }); return ( -
    -
    -
    - - - - - - - - - - +
    +
    +
    +

    </> My Projects

    +

    + A gallery of some of my most interesting projects. Look for , click those projects for more information! +

    +
    +
    + +
    + + + + + + + + + + +
    ); diff --git a/src/images/HashiCorp_Logo_no_text.png b/src/images/HashiCorp_Logo_no_text.png new file mode 100644 index 0000000..716bbbb Binary files /dev/null and b/src/images/HashiCorp_Logo_no_text.png differ diff --git a/src/imports.scss b/src/imports.scss index 919bdfc..7ac696d 100644 --- a/src/imports.scss +++ b/src/imports.scss @@ -1,2 +1,2 @@ -@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400,600&family=Montserrat:wght@400;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Montserrat:wght@400;600;700&display=swap');