diff --git a/.eslintcache b/.eslintcache index 4b5844c..33fdba7 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -[{"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\index.js":"1","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\App.js":"2","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\pages\\Portfolio.js":"3","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Canvas\\index.js":"4","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\text.js":"5","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\AboutMe\\AboutMe.js":"6","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Tech\\Tech.js":"7","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Projects\\Projects.js":"8","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contacts\\Contacts.js":"9","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\textObject.js":"10","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Techflip\\Techflip.js":"11","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\techflipArray.js":"12","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contactsmobile\\Contactsmobile.js":"13"},{"size":396,"mtime":1612320159437,"results":"14","hashOfConfig":"15"},{"size":1297,"mtime":1614616570155,"results":"16","hashOfConfig":"15"},{"size":7082,"mtime":1614619667652,"results":"17","hashOfConfig":"15"},{"size":6773,"mtime":1611983860750,"results":"18","hashOfConfig":"15"},{"size":941,"mtime":1613937124934,"results":"19","hashOfConfig":"20"},{"size":3745,"mtime":1614617072200,"results":"21","hashOfConfig":"15"},{"size":2561,"mtime":1614619079855,"results":"22","hashOfConfig":"15"},{"size":5963,"mtime":1614621508927,"results":"23","hashOfConfig":"15"},{"size":3333,"mtime":1614260935182,"results":"24","hashOfConfig":"15"},{"size":5600,"mtime":1614537856298,"results":"25","hashOfConfig":"15"},{"size":1313,"mtime":1614618624086,"results":"26","hashOfConfig":"15"},{"size":2995,"mtime":1614535891273,"results":"27","hashOfConfig":"15"},{"size":3318,"mtime":1614616333570,"results":"28","hashOfConfig":"15"},{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},"1rnj3qh",{"filePath":"32","messages":"33","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"34","usedDeprecatedRules":"31"},{"filePath":"35","messages":"36","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"37","usedDeprecatedRules":"31"},{"filePath":"38","messages":"39","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"40"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"i5guqa",{"filePath":"43","messages":"44","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"45","usedDeprecatedRules":"31"},{"filePath":"46","messages":"47","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"48","usedDeprecatedRules":"31"},{"filePath":"49","messages":"50","errorCount":0,"warningCount":11,"fixableErrorCount":0,"fixableWarningCount":0,"source":"51","usedDeprecatedRules":"31"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"54","usedDeprecatedRules":"31"},{"filePath":"55","messages":"56","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"57","messages":"58","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"59","usedDeprecatedRules":"31"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"64","usedDeprecatedRules":"31"},"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\index.js",[],["65","66"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\App.js",["67"],"import React, { useEffect, useState } from \"react\";\nimport Portfolio from \"./pages/Portfolio.js\"\nimport Contacts from \"./Components/Contacts/Contacts.js\"\nimport Contactsmobile from \"./Components/Contactsmobile/Contactsmobile.js\"\nimport Video from \"./Assets/jumboLoopBG.mp4\"\n\n\nfunction App() {\n const [windowSize, setwindowSize] = useState(window.innerWidth);\n const updateWindowsSize = () => {\n setwindowSize(window.innerWidth)\n }\n\n useEffect(() => {\n console.log(windowSize)\n window.addEventListener(\"resize\", updateWindowsSize);\n\n return () => window.removeEventListener(\"resize\", updateWindowsSize);\n },[]);\n\n return (\n \n
\n \n
\n \n

Welcome

\n
\n

Read about me, check out some of
my projects,\n and feel free to contact me.

\n
\n {windowSize>1199 ? : }\n \n
\n \n );\n}\n\nexport default App;\n","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\pages\\Portfolio.js",["68","69","70","71","72","73"],"import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport AboutMe from \"../Components/AboutMe/AboutMe.js\";\r\nimport Tech from \"../Components/Tech/Tech.js\";\r\nimport Projects from \"../Components/Projects/Projects.js\";\r\nimport { textObject } from \"../utils/textObject.js\"\r\nimport { propTypes } from \"react-bootstrap/esm/Image\";\r\n\r\n\r\n// import UserContext from \"../utils/userContext\";\r\n// import Row from \"../components/Row\";\r\n\r\n\r\nfunction Portfolio(props) {\r\n const [aboutMeShowing, setAboutMeShowing] = useState(\"init\");\r\n const [aboutMeBtn, setAboutMeBtn] = useState(\"\");\r\n \r\n const [techShowing, setTechShowing] = useState(false);\r\n const [techIntro, setTechIntro] = useState('hide');\r\n const [techBody, setTechBody] = useState('hide');\r\n const [techBtn, setTechBtn] = useState(\"\");\r\n const [disabled, setDisabled] = useState(\"\");\r\n\r\n const [projectsShowing, setProjectsShowing] = useState('');\r\n\r\n const widthAndHeight = useRef(null);\r\n const [height, setHeight] = useState(0);\r\n const [width, setWidth] = useState(0);\r\n\r\n var arrayOfObject = Object.values(textObject)\r\n var objectTexts = []\r\n var objectClasses = []\r\n var string = \"string\";\r\n\r\n objectClasses = arrayOfObject.map(item => {\r\n objectTexts.push(item[0].split(''))\r\n return item\r\n });\r\n \r\n var delay = 5;\r\n var count = 1;\r\n var divCount = 1;\r\n\r\n\r\n\r\n function addOneChar(i, j) {\r\n \r\n let currentP = document.getElementById(`tech${count}`)\r\n currentP.classList.add(objectClasses[i][1])\r\n currentP.classList.add(objectClasses[i][2])\r\n currentP.classList.add(objectClasses[i][3])\r\n objectTexts[i][j] !== \"1\" ? currentP.append(objectTexts[i][j]) : divCount ++;\r\n if (j + 1 < objectTexts[i].length) { // next character in the current string\r\n setTimeout(function () { addOneChar(i, j + 1); }, delay);\r\n } else if (i + 1 < objectTexts.length) { // start the next string in the text[] array\r\n count++;\r\n let tech = document.getElementById(`techDiv${divCount}`)\r\n let nextTech = document.createElement(\"p\")\r\n nextTech.setAttribute(\"id\", `tech${count}`)\r\n tech.appendChild(nextTech)\r\n setTimeout(function () { addOneChar(i + 1, 0); }, delay);\r\n } \r\n else {\r\n fadeTech();\r\n }\r\n }\r\n\r\n function fadeTech() {\r\n setTimeout(function () { setTechIntro('hide'); }, 500);\r\n setTimeout(function () { setTechBody('show'); }, 1000);\r\n }\r\n\r\n function clearTech() {\r\n document.getElementById(\"techDiv1\").innerHTML = '

';\r\n document.getElementById(\"techDiv2\").innerHTML = '';\r\n document.getElementById(\"techDiv3\").innerHTML = '';\r\n document.getElementById(\"techDiv4\").innerHTML = '';\r\n document.getElementById(\"techDiv5\").innerHTML = '';\r\n document.getElementById(\"techDiv6\").innerHTML = '';\r\n document.getElementById(\"techDiv7\").innerHTML = '';\r\n document.getElementById(\"techDiv8\").innerHTML = '';\r\n document.getElementById(\"techDiv9\").innerHTML = '';\r\n }\r\n\r\n const handleTechClick = function () {\r\n if (techShowing == false) {\r\n setTechShowing(true);\r\n setTechIntro('show');\r\n setTimeout(function () { addOneChar(0, 0); });\r\n setDisabled(\"none\");\r\n setTimeout(function () { setDisabled(\"\"); }, 4000);\r\n }\r\n else {\r\n setTechShowing(false);\r\n clearTech();\r\n setTechBody('hide');\r\n }\r\n }\r\n\r\n const handleProjectsClick = function () {\r\n if (projectsShowing == '') {\r\n setProjectsShowing('projectsShowing');\r\n setAboutMeShowing(false);\r\n setTechShowing(false);\r\n clearTech();\r\n setTechBody('hide');\r\n setAboutMeShowing(\"hidden\");\r\n setAboutMeBtn('collapse')\r\n setTechBtn('collapse')\r\n }\r\n else if (projectsShowing == 'projectsShowing') {\r\n setProjectsShowing('projectsClosing');\r\n setTimeout(function () { setProjectsShowing(''); }, 1001);\r\n setTimeout(function () { setAboutMeBtn('') }, 1001);\r\n setTimeout(function () { setTechBtn('') }, 1001);\r\n }\r\n }\r\n\r\n const handleAboutMeClick = function () {\r\n if (aboutMeShowing === \"hidden\" || \"init\") {\r\n setAboutMeShowing(\"showing\");\r\n }\r\n if (aboutMeShowing === \"showing\") {\r\n setAboutMeShowing(\"hidden\");\r\n }\r\n }\r\n\r\n \r\n useEffect(() => {\r\n if (props.windowSize < 1199) {\r\n setAboutMeShowing(\"showing\");\r\n setTechShowing(true)\r\n setTechBody('show')\r\n setProjectsShowing('projectsShowing');\r\n }\r\n }, [props.windowSize]);\r\n\r\n useEffect(() => {\r\n setHeight(widthAndHeight.current.offsetHeight);\r\n setWidth(widthAndHeight.current.offsetWidth);\r\n }, [widthAndHeight.current]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {props.windowSize>1199 ? \r\n
\r\n

about me

\r\n

projects

\r\n

technologies

\r\n
\r\n : \"\" }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n );\r\n}\r\n\r\nexport default Portfolio;\r\n","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Canvas\\index.js",["74","75"],"\r\nimport React, { useRef, useEffect } from 'react'\r\n\r\nconst Canvas = props => {\r\n\r\n const canvasRef = useRef(null)\r\n \r\n const mid = props.width / 2;\r\n const scaleY = props.height;\r\n const scaleX = props.width;\r\n\r\n console.log(mid)\r\n // const branchLine = {\r\n\r\n // downStartX: mid,\r\n // downStartY: 0,\r\n // downFinishX: mid,\r\n // downFinishY: 750,\r\n // branch1X1: mid,\r\n // branch1Y1: 180,\r\n // branch1X2: mid - 80,\r\n // branch1Y2: 240,\r\n // branch1X3: mid - 240,\r\n // branch1Y3: 240,\r\n // branch1X4: mid - 120,\r\n // branch1Y4: 240,\r\n // branch1X5: mid - 170,\r\n // branch1Y5: 270,\r\n // branch1X6: mid - 200,\r\n // branch1Y6: 270,\r\n // branch2X1: mid,\r\n // branch2Y1: 280,\r\n // branch2X2: mid + 100,\r\n // branch2Y2: 320,\r\n // branch2X3: mid + 100,\r\n // branch2Y3: 390,\r\n // branch2X4: mid + 240,\r\n // branch2Y4: 390,\r\n // branch2X5: mid + 130,\r\n // branch2Y5: 390,\r\n // branch2X6: mid + 160,\r\n // branch2Y6: 420,\r\n // branch2X7: mid + 210,\r\n // branch2Y7: 420\r\n // }\r\n const branchLine = {\r\n\r\n downStartX: mid,\r\n downStartY: 0,\r\n downFinishX: mid,\r\n downFinishY: scaleY / 1.49,\r\n branch1: {\r\n X1: mid,\r\n Y1: scaleY / 3.22,\r\n X2: mid - ( scaleX / 25.52 ),\r\n Y2: scaleY / 2.78,\r\n X3: mid - ( scaleX / 5.84 ),\r\n Y3: scaleY / 2.78,\r\n X4: mid - ( scaleX / 9.68 ),\r\n Y4: scaleY / 2.78,\r\n X5: mid - ( scaleX / 8.24 ),\r\n Y5: scaleY / 2.61,\r\n X6: mid - ( scaleX / 6.91 ),\r\n Y6: scaleY / 2.61,\r\n },\r\n branch2: { \r\n X1: mid,\r\n Y1: scaleY / 2.22,\r\n X2: mid + ( scaleX / 3.52 ),\r\n Y2: scaleY / 2.22,\r\n X3: mid + ( scaleX / 5.84 ),\r\n Y3: scaleY / 2.22,\r\n X4: mid + (scaleX / 5.18),\r\n Y4: scaleY / 2.12,\r\n X5: mid + (scaleX / 4.24),\r\n Y5: scaleY / 2.12,\r\n },\r\n branch3: {\r\n X1: mid,\r\n Y1: scaleY / 1.49,\r\n X2: mid - (scaleX / 25.52),\r\n Y2: scaleY / 1.36,\r\n X3: mid - (scaleX / 3.84),\r\n Y3: scaleY / 1.36,\r\n X4: mid - (scaleX / 6.18),\r\n Y4: scaleY / 1.36,\r\n X5: mid - (scaleX / 5.24),\r\n Y5: scaleY / 1.32,\r\n X6: mid - (scaleX / 4.51),\r\n Y6: scaleY / 1.32,\r\n } \r\n }\r\n // const draw = (ctx, frameCount) => {\r\n // ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)\r\n // console.log(\"canvas width\" + ctx.canvas.width)\r\n // ctx.fillStyle = '#000000'\r\n // ctx.beginPath()\r\n // ctx.arc(50, 100, 20 * Math.sin(frameCount * 0.05) ** 2, 0, 2 * Math.PI)\r\n // ctx.fill()\r\n // }\r\n\r\n function mainLine( ctx, bL, ratio ){\r\n let animatedX=0;\r\n let animatedY=0\r\n ctx.moveTo(bL.downStartX, bL.downStartY);\r\n animatedX = bL.downStartX + ratio * ( bL.downFinishX - bL.downStartX );\r\n animatedY = bL.downStartY + ratio * ( bL.downFinishX - bL.downStartX );\r\n ctx.lineTo(animatedX, animatedY);\r\n ctx.stroke()\r\n }\r\n\r\n function drawLine( ctx, bL ) {\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = \"#8d949c\";\r\n // ctx.strokeStyle = \"black\";\r\n ctx.beginPath();\r\n ctx.moveTo(bL.downStartX, bL.downStartY);\r\n ctx.lineTo(bL.downFinishX, bL.downFinishY);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X1, bL.branch1.Y1);\r\n ctx.lineTo(bL.branch1.X2, bL.branch1.Y2);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X2, bL.branch1.Y2);\r\n ctx.lineTo(bL.branch1.X3, bL.branch1.Y3);\r\n ctx.stroke();\r\n ctx.arc(bL.branch1.X3 - 3, bL.branch1.Y3, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X4, bL.branch1.Y4);\r\n ctx.lineTo(bL.branch1.X5, bL.branch1.Y5);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X5, bL.branch1.Y5);\r\n ctx.lineTo(bL.branch1.X6, bL.branch1.Y6);\r\n ctx.stroke();\r\n ctx.arc(bL.branch1.X6 - 3, bL.branch1.Y6, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X1, bL.branch2.Y1);\r\n ctx.lineTo(bL.branch2.X2, bL.branch2.Y2);\r\n ctx.stroke();\r\n ctx.closePath();\r\n ctx.beginPath();\r\n ctx.moveTo(bL.branch2.X2 + 6, bL.branch2.Y2)\r\n ctx.arc(bL.branch2.X2 +3, bL.branch2.Y2, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X3, bL.branch2.Y3);\r\n ctx.lineTo(bL.branch2.X4, bL.branch2.Y4);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X4, bL.branch2.Y4);\r\n ctx.lineTo(bL.branch2.X5, bL.branch2.Y5);\r\n ctx.stroke();\r\n ctx.closePath();\r\n ctx.beginPath();\r\n ctx.moveTo(bL.branch2.X5 + 6, bL.branch2.Y5)\r\n ctx.arc(bL.branch2.X5 + 3, bL.branch2.Y5, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X1, bL.branch3.Y1);\r\n ctx.lineTo(bL.branch3.X2, bL.branch3.Y2);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X2, bL.branch3.Y2);\r\n ctx.lineTo(bL.branch3.X3, bL.branch3.Y3);\r\n ctx.stroke();\r\n ctx.arc(bL.branch3.X3 - 3, bL.branch3.Y3, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X4, bL.branch3.Y4);\r\n ctx.lineTo(bL.branch3.X5, bL.branch3.Y5);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X5, bL.branch3.Y5);\r\n ctx.lineTo(bL.branch3.X6, bL.branch3.Y6);\r\n ctx.stroke();\r\n ctx.arc(bL.branch3.X6 - 3, bL.branch3.Y6, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n \r\n \r\n console.log(\"branch \" + bL.branch1X3)\r\n // And if we intend to start new things after\r\n // this, and this is part of an outline, \r\n // we probably also want a ctx.closePath()\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const canvas = canvasRef.current\r\n const context = canvas.getContext('2d')\r\n \r\n\r\n //Our draw came here\r\n const render = (ratio) => {\r\n ratio = ratio || 0;\r\n mainLine(context, branchLine, ratio )\r\n if (ratio<1) {\r\n window.requestAnimationFrame(function() {\r\n render(ratio + 0.01 );\r\n });\r\n }\r\n }\r\n render()\r\n\r\n // return () => {\r\n // window.cancelAnimationFrame(animationFrameId)\r\n // }\r\n }, [mainLine])\r\n\r\n return \r\n}\r\n\r\nexport default Canvas","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\text.js",["76","77","78"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\AboutMe\\AboutMe.js",["79","80"],"import React, { useState, useEffect } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Portrait from \"../../Assets/portrait.png\"\r\nimport \"./style.css\";\r\n\r\n\r\nfunction useFadeIn(fire) {\r\n let duration = 1500;\r\n const [opacity, setOpacity] = useState(0);\r\n const [filter, setFilter] = useState(0);\r\n\r\n\r\n useEffect(() => {\r\n console.log(\"effect called\")\r\n const start = 1500;\r\n let check = 1600;\r\n let queuedFrame\r\n const frameIn = function () {\r\n const now = check - start;\r\n check += 35;\r\n if (now < duration) {\r\n queuedFrame = requestAnimationFrame(frameIn)\r\n }\r\n\r\n switch (fire) {\r\n case \"showing\":\r\n setOpacity(Math.min(1, (now / duration)))\r\n setFilter(Math.min(1, (duration / now) - 1))\r\n break;\r\n case \"hidden\":\r\n setOpacity(0)\r\n setFilter(0)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n frameIn();\r\n\r\n return () => cancelAnimationFrame(queuedFrame)\r\n }, [fire]);\r\n\r\n // const reset = () => setTime(Date.now());\r\n const filterVal = `blur(${filter}em)`\r\n return [opacity, filterVal]\r\n}\r\n\r\nfunction AboutMe(props) {\r\n\r\n const [opacity, filterVal] = useFadeIn(props.showing)\r\n console.log(props.windowSize)\r\n\r\n return (\r\n
\r\n \r\n {props.windowSize > 1199 ? \r\n
\r\n
\r\n
\r\n

Hello, I'm Matt Baber

\r\n

I am a Full Stack Web Developer

\r\n
\r\n
A little bit about me...
\r\n

I am 33 years old. I live in Euclid, Ohio with\r\n my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I\r\n have worked as a Chef, and have made the decision to leave that career path and learn how to\r\n program.

\r\n \"my\r\n
\r\n
\r\n
\r\n :\r\n
\r\n

about me

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

Hello, I'm Matt Baber

\r\n

I am a Full Stack Web Developer

\r\n
\r\n

A little bit about me...

\r\n

I am 33 years old. I live in Euclid, Ohio with\r\n my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I\r\n have worked as a Chef, and have made the decision to leave that career path and learn how to\r\n program.

\r\n \r\n \r\n \"my\r\n \r\n
\r\n
\r\n
\r\n
}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AboutMe;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Tech\\Tech.js",["81","82","83"],"import React, { useEffect, useState } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Techflip from \"../Techflip/Techflip.js\"\r\nimport { languageArray, appsArray } from \"../../utils/techflipArray.js\"\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Tech(props) {\r\n \r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

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

Languages

\r\n \r\n {languageArray.map(item => (\r\n \r\n ))} \r\n \r\n

Applications

\r\n \r\n {appsArray.map(item => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Tech;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Projects\\Projects.js",["84","85","86","87","88","89","90","91","92","93","94"],"import React, { useState, useEffect, useRef, } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Canvas from \"../Canvas\"\r\nimport Streamline from \"../../Assets/streamLine.png\"\r\nimport Botw from \"../../Assets/baberOfTheWoods.png\"\r\nimport Loaded from \"../../Assets/loaded.png\"\r\nimport Turnup from \"../../Assets/turnup.png\"\r\nimport \"./style.css\";\r\n\r\nfunction Projects(props) {\r\n const [collapsed, setCollapsed] = useState(\" collapse\")\r\n const repoIcon = ;\r\n const webIcon = ;\r\n \r\n const loadedLink = \"https://loadedtruckingapp.herokuapp.com/\";\r\n const loadedRepo = \"https://github.com/baberMatt/loaded\";\r\n const streamLineLink = \"https://babermatt.github.io/StreamerSearch/\";\r\n const streamLineRepo = \"https://github.com/baberMatt/StreamerSearch\";\r\n const turnupLink = \"https://turnuppopups.herokuapp.com/\";\r\n const turnupRepo = \"https://github.com/baberMatt/Turnup\";\r\n const botwLink = \"https://babermatt.github.io/BaberOfTheWoods/\";\r\n const botwRepo = \"https://github.com/baberMatt/BaberOfTheWoods\";\r\n \r\n \r\n function checkShowing() {\r\n if (props.showing == \"projectsShowing\") {\r\n setTimeout(function () { setCollapsed(\"\"); }, 1025);\r\n }\r\n else {\r\n setCollapsed(\" collapse\");\r\n } \r\n }\r\n \r\n\r\n useEffect(() => {\r\n checkShowing(); \r\n }, [props.showing]);\r\n\r\n console.log(props.height, props.width)\r\n \r\n return (\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Turnup

\r\n

An platform for Pop Up events. Host and guests a like can browse events, flag attendance and even purchase offerings.

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

Loaded

\r\n

A logistics tracking app. Allows you to keep track of drivers and loads, data about them and their status.

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

streamLine

\r\n

A search app for the top games being streamed on you tube. Search for a specific streamer, or browse top games and watch live.

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

Baber of the Woods

\r\n

An early project of mine, simple grid layout photo album with photos from my favorite hobby, hunting wild mushrooms.

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n\r\n
\r\n {/* \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
*/}\r\n {/* */}\r\n
\r\n );\r\n}\r\n\r\nexport default Projects;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contacts\\Contacts.js",["95","96","97","98"],"import React, { useEffect, useRef, useState } from \"react\";\r\nimport resume from \"../../Assets/mattBaberResume.pdf\";\r\n\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Contacts() {\r\n // const { contactsView } = useContext(ContactContext);\r\n // const { handleContactBtn} = useContext(ContactContext);\r\n const [contactsView, setContactsView] = useState(\"hidden\")\r\n const [copiedView, setCopiedView] = useState(\"collapse\")\r\n\r\n function handleContactBtn(event) {\r\n if ( contactsView === \"hidden\") {\r\n setContactsView(\"showing\");\r\n }else{\r\n setContactsView(\"hidden\")\r\n }\r\n }\r\n\r\n // const copyTextRef = useRef();\r\n // useEffect(() => {\r\n // const copyText = copyTextRef.current.firstChild.data;\r\n\r\n // copyTextRef.current.select();\r\n // document.execCommand(\"copy\");\r\n // }) \r\n\r\n \r\n function copyEmail() {\r\n const el = document.createElement('textarea');\r\n el.value = \"mbaber1142@gmail.com\";\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopiedView(\"\");\r\n setTimeout(function () { setCopiedView('collapse'); }, 750);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
Email Me
\r\n

mbaber114@gmail.com

\r\n

copied to clipboard!

\r\n
\r\n\r\n \r\n
    \r\n
  • \r\n \"instagram\r\n
  • \r\n
  • \r\n \"linkedin\r\n
  • \r\n
  • \r\n \"github\r\n
  • \r\n
\r\n\r\n
\r\n
My Resume
\r\n \"pdf\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Contacts;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\textObject.js",[],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Techflip\\Techflip.js",["99","100","101","102","103","104"],"import React, { useState, useEffect } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Techflip(props) {\r\n const thisStyle = {\r\n color: props.thisTech.color,\r\n backgroundColor: props.thisTech.bgColor,\r\n clipPath: props.thisTech.clip\r\n }\r\n\r\n console.log(props.thisTech)\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {props.thisTech.title === \"JavaScript\" ?
{props.thisTech.title}
:
{props.thisTech.title}
}\r\n {props.thisTech.text.map(item => (\r\n

{item}

\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Techflip;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\techflipArray.js",[],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contactsmobile\\Contactsmobile.js",["105","106","107","108"],"import React, { useEffect, useRef, useState } from \"react\";\r\nimport resume from \"../../Assets/mattBaberResume.pdf\";\r\n\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Contactsmobile() {\r\n // const { contactsView } = useContext(ContactContext);\r\n // const { handleContactBtn} = useContext(ContactContext);\r\n const [contactsView, setContactsView] = useState(\"hidden\")\r\n const [copiedView, setCopiedView] = useState(\"collapse\")\r\n\r\n function handleContactBtn(event) {\r\n if (contactsView === \"hidden\") {\r\n setContactsView(\"showing\");\r\n } else {\r\n setContactsView(\"hidden\")\r\n }\r\n }\r\n\r\n // const copyTextRef = useRef();\r\n // useEffect(() => {\r\n // const copyText = copyTextRef.current.firstChild.data;\r\n\r\n // copyTextRef.current.select();\r\n // document.execCommand(\"copy\");\r\n // }) \r\n\r\n\r\n function copyEmail() {\r\n const el = document.createElement('textarea');\r\n el.value = \"mbaber1142@gmail.com\";\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopiedView(\"\");\r\n setTimeout(function () { setCopiedView('collapse'); }, 750);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
Email Me
\r\n

mbaber114@gmail.com

\r\n

copied to clipboard!

\r\n
\r\n\r\n\r\n
\r\n \"instagram\r\n \"linkedin\r\n \"github\r\n
\r\n\r\n
\r\n
\r\n
\r\n

R

\r\n

e

\r\n

s

\r\n

u

\r\n

m

\r\n

e

\r\n
\r\n \"pdf\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Contactsmobile;",{"ruleId":"109","replacedBy":"110"},{"ruleId":"111","replacedBy":"112"},{"ruleId":"113","severity":1,"message":"114","line":19,"column":5,"nodeType":"115","endLine":19,"endColumn":7,"suggestions":"116"},{"ruleId":"117","severity":1,"message":"118","line":7,"column":10,"nodeType":"119","messageId":"120","endLine":7,"endColumn":19},{"ruleId":"117","severity":1,"message":"121","line":33,"column":9,"nodeType":"119","messageId":"120","endLine":33,"endColumn":15},{"ruleId":"122","severity":1,"message":"123","line":86,"column":25,"nodeType":"124","messageId":"125","endLine":86,"endColumn":27},{"ruleId":"122","severity":1,"message":"123","line":101,"column":29,"nodeType":"124","messageId":"125","endLine":101,"endColumn":31},{"ruleId":"122","severity":1,"message":"123","line":111,"column":34,"nodeType":"124","messageId":"125","endLine":111,"endColumn":36},{"ruleId":"113","severity":1,"message":"126","line":141,"column":8,"nodeType":"115","endLine":141,"endColumn":32,"suggestions":"127"},{"ruleId":"117","severity":1,"message":"128","line":112,"column":14,"nodeType":"119","messageId":"120","endLine":112,"endColumn":22},{"ruleId":"113","severity":1,"message":"129","line":200,"column":8,"nodeType":"115","endLine":200,"endColumn":18,"suggestions":"130"},{"ruleId":"117","severity":1,"message":"131","line":1,"column":10,"nodeType":"119","messageId":"120","endLine":1,"endColumn":22},{"ruleId":"132","severity":1,"message":"133","line":23,"column":5,"nodeType":"134","messageId":"135","endLine":23,"endColumn":56},{"ruleId":"132","severity":1,"message":"133","line":28,"column":5,"nodeType":"134","messageId":"135","endLine":28,"endColumn":59},{"ruleId":"117","severity":1,"message":"136","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":19},{"ruleId":"113","severity":1,"message":"137","line":42,"column":6,"nodeType":"115","endLine":42,"endColumn":12,"suggestions":"138"},{"ruleId":"117","severity":1,"message":"139","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":26},{"ruleId":"117","severity":1,"message":"140","line":1,"column":28,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"136","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":19},{"ruleId":"117","severity":1,"message":"141","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"136","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":19},{"ruleId":"117","severity":1,"message":"142","line":3,"column":8,"nodeType":"119","messageId":"120","endLine":3,"endColumn":14},{"ruleId":"143","severity":1,"message":"144","line":12,"column":22,"nodeType":"145","endLine":12,"endColumn":121},{"ruleId":"143","severity":1,"message":"144","line":13,"column":21,"nodeType":"145","endLine":13,"endColumn":89},{"ruleId":"122","severity":1,"message":"123","line":26,"column":27,"nodeType":"124","messageId":"125","endLine":26,"endColumn":29},{"ruleId":"113","severity":1,"message":"146","line":37,"column":10,"nodeType":"115","endLine":37,"endColumn":25,"suggestions":"147"},{"ruleId":"143","severity":1,"message":"144","line":51,"column":29,"nodeType":"145","endLine":51,"endColumn":90},{"ruleId":"143","severity":1,"message":"144","line":59,"column":29,"nodeType":"145","endLine":59,"endColumn":90},{"ruleId":"143","severity":1,"message":"144","line":77,"column":29,"nodeType":"145","endLine":77,"endColumn":94},{"ruleId":"143","severity":1,"message":"144","line":85,"column":29,"nodeType":"145","endLine":85,"endColumn":88},{"ruleId":"117","severity":1,"message":"139","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":26},{"ruleId":"117","severity":1,"message":"141","line":1,"column":28,"nodeType":"119","messageId":"120","endLine":1,"endColumn":34},{"ruleId":"143","severity":1,"message":"144","line":47,"column":19,"nodeType":"145","endLine":47,"endColumn":118},{"ruleId":"148","severity":1,"message":"149","line":72,"column":25,"nodeType":"145","endLine":72,"endColumn":81},{"ruleId":"117","severity":1,"message":"140","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"139","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"136","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":19},{"ruleId":"117","severity":1,"message":"150","line":2,"column":21,"nodeType":"119","messageId":"120","endLine":2,"endColumn":24},{"ruleId":"117","severity":1,"message":"151","line":2,"column":26,"nodeType":"119","messageId":"120","endLine":2,"endColumn":29},{"ruleId":"143","severity":1,"message":"144","line":19,"column":21,"nodeType":"145","endLine":19,"endColumn":87},{"ruleId":"117","severity":1,"message":"139","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":26},{"ruleId":"117","severity":1,"message":"141","line":1,"column":28,"nodeType":"119","messageId":"120","endLine":1,"endColumn":34},{"ruleId":"143","severity":1,"message":"144","line":47,"column":11,"nodeType":"145","endLine":47,"endColumn":127},{"ruleId":"148","severity":1,"message":"149","line":74,"column":15,"nodeType":"145","endLine":74,"endColumn":71},"no-native-reassign",["152"],"no-negated-in-lhs",["153"],"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'windowSize'. Either include it or remove the dependency array.","ArrayExpression",["154"],"no-unused-vars","'propTypes' is defined but never used.","Identifier","unusedVar","'string' is assigned a value but never used.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","React Hook useEffect has an unnecessary dependency: 'widthAndHeight.current'. Either exclude it or remove the dependency array. Mutable values like 'widthAndHeight.current' aren't valid dependencies because mutating them doesn't re-render the component.",["155"],"'drawLine' is defined but never used.","React Hook useEffect has a missing dependency: 'branchLine'. Either include it or remove the dependency array.",["156"],"'defaultTheme' is defined but never used.","no-template-curly-in-string","Unexpected template string expression.","Literal","unexpectedTemplateExpression","'Container' is defined but never used.","React Hook useEffect has a missing dependency: 'duration'. Either include it or remove the dependency array.",["157"],"'useEffect' is defined but never used.","'useState' is defined but never used.","'useRef' is defined but never used.","'Canvas' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","React Hook useEffect has a missing dependency: 'checkShowing'. Either include it or remove the dependency array.",["158"],"react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","'Row' is defined but never used.","'Col' is defined but never used.","no-global-assign","no-unsafe-negation",{"desc":"159","fix":"160"},{"desc":"161","fix":"162"},{"desc":"163","fix":"164"},{"desc":"165","fix":"166"},{"desc":"167","fix":"168"},"Update the dependencies array to be: [windowSize]",{"range":"169","text":"170"},"Update the dependencies array to be: []",{"range":"171","text":"172"},"Update the dependencies array to be: [branchLine, mainLine]",{"range":"173","text":"174"},"Update the dependencies array to be: [duration, fire]",{"range":"175","text":"176"},"Update the dependencies array to be: [checkShowing, props.showing]",{"range":"177","text":"178"},[623,625],"[windowSize]",[5104,5128],"[]",[6628,6638],"[branchLine, mainLine]",[1034,1040],"[duration, fire]",[1541,1556],"[checkShowing, props.showing]"] \ No newline at end of file +[{"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\index.js":"1","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\App.js":"2","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\pages\\Portfolio.js":"3","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Canvas\\index.js":"4","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\AboutMe\\AboutMe.js":"5","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Tech\\Tech.js":"6","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Projects\\Projects.js":"7","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contacts\\Contacts.js":"8","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\textObject.js":"9","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Techflip\\Techflip.js":"10","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\techflipArray.js":"11","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contactsmobile\\Contactsmobile.js":"12","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Consolereturn\\ConsoleReturn.js":"13","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Console\\Console.js":"14"},{"size":449,"mtime":1635423113592,"results":"15","hashOfConfig":"16"},{"size":1719,"mtime":1635863118118,"results":"17","hashOfConfig":"16"},{"size":19138,"mtime":1635863831409,"results":"18","hashOfConfig":"16"},{"size":6868,"mtime":1634958439939,"results":"19","hashOfConfig":"16"},{"size":3901,"mtime":1635855554156,"results":"20","hashOfConfig":"16"},{"size":7968,"mtime":1635857297641,"results":"21","hashOfConfig":"16"},{"size":6093,"mtime":1635861464888,"results":"22","hashOfConfig":"16"},{"size":3297,"mtime":1635860202071,"results":"23","hashOfConfig":"16"},{"size":3383,"mtime":1635250478290,"results":"24","hashOfConfig":"16"},{"size":790,"mtime":1635807146562,"results":"25","hashOfConfig":"16"},{"size":1773,"mtime":1635807440512,"results":"26","hashOfConfig":"16"},{"size":3276,"mtime":1635864093817,"results":"27","hashOfConfig":"16"},{"size":363,"mtime":1635373841002,"results":"28","hashOfConfig":"16"},{"size":397,"mtime":1635508963752,"results":"29","hashOfConfig":"16"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},"i5guqa",{"filePath":"33","messages":"34","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"35","messages":"36","errorCount":0,"warningCount":14,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"37","messages":"38","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"39","usedDeprecatedRules":"32"},{"filePath":"40","messages":"41","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"42","usedDeprecatedRules":"32"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"45","usedDeprecatedRules":"32"},{"filePath":"46","messages":"47","errorCount":0,"warningCount":13,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"48","messages":"49","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"50","usedDeprecatedRules":"32"},{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"55","usedDeprecatedRules":"32"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"60","messages":"61","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"62","usedDeprecatedRules":"32"},{"filePath":"63","messages":"64","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"65","usedDeprecatedRules":"32"},"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\index.js",[],["66","67"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\App.js",["68"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\pages\\Portfolio.js",["69","70","71","72","73","74","75","76","77","78","79","80","81","82"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Canvas\\index.js",["83"],"\r\nimport React, { useRef, useEffect } from 'react'\r\n\r\nconst Canvas = props => {\r\n\r\n const canvasRef = useRef(null)\r\n \r\n const mid = props.width / 2;\r\n const scaleY = props.height;\r\n const scaleX = props.width;\r\n\r\n console.log(mid)\r\n // const branchLine = {\r\n\r\n // downStartX: mid,\r\n // downStartY: 0,\r\n // downFinishX: mid,\r\n // downFinishY: 750,\r\n // branch1X1: mid,\r\n // branch1Y1: 180,\r\n // branch1X2: mid - 80,\r\n // branch1Y2: 240,\r\n // branch1X3: mid - 240,\r\n // branch1Y3: 240,\r\n // branch1X4: mid - 120,\r\n // branch1Y4: 240,\r\n // branch1X5: mid - 170,\r\n // branch1Y5: 270,\r\n // branch1X6: mid - 200,\r\n // branch1Y6: 270,\r\n // branch2X1: mid,\r\n // branch2Y1: 280,\r\n // branch2X2: mid + 100,\r\n // branch2Y2: 320,\r\n // branch2X3: mid + 100,\r\n // branch2Y3: 390,\r\n // branch2X4: mid + 240,\r\n // branch2Y4: 390,\r\n // branch2X5: mid + 130,\r\n // branch2Y5: 390,\r\n // branch2X6: mid + 160,\r\n // branch2Y6: 420,\r\n // branch2X7: mid + 210,\r\n // branch2Y7: 420\r\n // }\r\n const branchLine = {\r\n\r\n downStartX: mid,\r\n downStartY: 0,\r\n downFinishX: mid,\r\n downFinishY: scaleY / 1.49,\r\n branch1: {\r\n X1: mid,\r\n Y1: scaleY / 3.22,\r\n X2: mid - ( scaleX / 25.52 ),\r\n Y2: scaleY / 2.78,\r\n X3: mid - ( scaleX / 5.84 ),\r\n Y3: scaleY / 2.78,\r\n X4: mid - ( scaleX / 9.68 ),\r\n Y4: scaleY / 2.78,\r\n X5: mid - ( scaleX / 8.24 ),\r\n Y5: scaleY / 2.61,\r\n X6: mid - ( scaleX / 6.91 ),\r\n Y6: scaleY / 2.61,\r\n },\r\n branch2: { \r\n X1: mid,\r\n Y1: scaleY / 2.22,\r\n X2: mid + ( scaleX / 3.52 ),\r\n Y2: scaleY / 2.22,\r\n X3: mid + ( scaleX / 5.84 ),\r\n Y3: scaleY / 2.22,\r\n X4: mid + (scaleX / 5.18),\r\n Y4: scaleY / 2.12,\r\n X5: mid + (scaleX / 4.24),\r\n Y5: scaleY / 2.12,\r\n },\r\n branch3: {\r\n X1: mid,\r\n Y1: scaleY / 1.49,\r\n X2: mid - (scaleX / 25.52),\r\n Y2: scaleY / 1.36,\r\n X3: mid - (scaleX / 3.84),\r\n Y3: scaleY / 1.36,\r\n X4: mid - (scaleX / 6.18),\r\n Y4: scaleY / 1.36,\r\n X5: mid - (scaleX / 5.24),\r\n Y5: scaleY / 1.32,\r\n X6: mid - (scaleX / 4.51),\r\n Y6: scaleY / 1.32,\r\n } \r\n }\r\n // const draw = (ctx, frameCount) => {\r\n // ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)\r\n // console.log(\"canvas width\" + ctx.canvas.width)\r\n // ctx.fillStyle = '#000000'\r\n // ctx.beginPath()\r\n // ctx.arc(50, 100, 20 * Math.sin(frameCount * 0.05) ** 2, 0, 2 * Math.PI)\r\n // ctx.fill()\r\n // }\r\n\r\n function mainLine( ctx, bL, ratio ){\r\n let animatedX=0;\r\n let animatedY=0\r\n ctx.moveTo(bL.downStartX, bL.downStartY);\r\n animatedX = bL.downStartX + ratio * ( bL.downFinishX - bL.downStartX );\r\n animatedY = bL.downStartY + ratio * ( bL.downFinishX - bL.downStartX );\r\n ctx.lineTo(animatedX, animatedY);\r\n ctx.stroke()\r\n }\r\n\r\n function drawLine( ctx, bL ) {\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = \"#8d949c\";\r\n // ctx.strokeStyle = \"black\";\r\n ctx.beginPath();\r\n ctx.moveTo(bL.downStartX, bL.downStartY);\r\n ctx.lineTo(bL.downFinishX, bL.downFinishY);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X1, bL.branch1.Y1);\r\n ctx.lineTo(bL.branch1.X2, bL.branch1.Y2);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X2, bL.branch1.Y2);\r\n ctx.lineTo(bL.branch1.X3, bL.branch1.Y3);\r\n ctx.stroke();\r\n ctx.arc(bL.branch1.X3 - 3, bL.branch1.Y3, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X4, bL.branch1.Y4);\r\n ctx.lineTo(bL.branch1.X5, bL.branch1.Y5);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch1.X5, bL.branch1.Y5);\r\n ctx.lineTo(bL.branch1.X6, bL.branch1.Y6);\r\n ctx.stroke();\r\n ctx.arc(bL.branch1.X6 - 3, bL.branch1.Y6, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X1, bL.branch2.Y1);\r\n ctx.lineTo(bL.branch2.X2, bL.branch2.Y2);\r\n ctx.stroke();\r\n ctx.closePath();\r\n ctx.beginPath();\r\n ctx.moveTo(bL.branch2.X2 + 6, bL.branch2.Y2)\r\n ctx.arc(bL.branch2.X2 +3, bL.branch2.Y2, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X3, bL.branch2.Y3);\r\n ctx.lineTo(bL.branch2.X4, bL.branch2.Y4);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch2.X4, bL.branch2.Y4);\r\n ctx.lineTo(bL.branch2.X5, bL.branch2.Y5);\r\n ctx.stroke();\r\n ctx.closePath();\r\n ctx.beginPath();\r\n ctx.moveTo(bL.branch2.X5 + 6, bL.branch2.Y5)\r\n ctx.arc(bL.branch2.X5 + 3, bL.branch2.Y5, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X1, bL.branch3.Y1);\r\n ctx.lineTo(bL.branch3.X2, bL.branch3.Y2);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X2, bL.branch3.Y2);\r\n ctx.lineTo(bL.branch3.X3, bL.branch3.Y3);\r\n ctx.stroke();\r\n ctx.arc(bL.branch3.X3 - 3, bL.branch3.Y3, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X4, bL.branch3.Y4);\r\n ctx.lineTo(bL.branch3.X5, bL.branch3.Y5);\r\n ctx.stroke();\r\n ctx.moveTo(bL.branch3.X5, bL.branch3.Y5);\r\n ctx.lineTo(bL.branch3.X6, bL.branch3.Y6);\r\n ctx.stroke();\r\n ctx.arc(bL.branch3.X6 - 3, bL.branch3.Y6, 3, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n \r\n \r\n console.log(\"branch \" + bL.branch1X3)\r\n // And if we intend to start new things after\r\n // this, and this is part of an outline, \r\n // we probably also want a ctx.closePath()\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const canvas = canvasRef.current\r\n const context = canvas.getContext('2d')\r\n \r\n\r\n //Our draw came here\r\n const render = (ratio) => {\r\n ratio = ratio || 0;\r\n mainLine(context, branchLine, ratio )\r\n if (ratio<1) {\r\n window.requestAnimationFrame(function() {\r\n render(ratio + 0.01 );\r\n });\r\n }\r\n\r\n \r\n drawLine(context, branchLine)\r\n \r\n \r\n }\r\n \r\n render()\r\n\r\n // return () => {\r\n // window.cancelAnimationFrame(animationFrameId)\r\n // }\r\n }, [mainLine])\r\n\r\n return \r\n}\r\n\r\nexport default Canvas","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\AboutMe\\AboutMe.js",["84","85","86"],"import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Portrait from \"../../Assets/portrait.png\"\r\nimport \"./style.css\";\r\n\r\n\r\nfunction useFadeIn(fire) {\r\n let duration = 1500;\r\n const [opacity, setOpacity] = useState(0);\r\n const [filter, setFilter] = useState(0);\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n console.log(\"effect called\")\r\n const start = 1500;\r\n let check = 1600;\r\n let queuedFrame\r\n const frameIn = function () {\r\n const now = check - start;\r\n check += 35;\r\n if (now < duration) {\r\n queuedFrame = requestAnimationFrame(frameIn)\r\n }\r\n\r\n switch (fire) {\r\n case \"showing\":\r\n setOpacity(Math.min(1, (now / duration)))\r\n setFilter(Math.min(1, (duration / now) - 1))\r\n break;\r\n case \"hidden\":\r\n setOpacity(0)\r\n setFilter(0)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n frameIn();\r\n\r\n return () => cancelAnimationFrame(queuedFrame)\r\n }, [fire]);\r\n\r\n // const reset = () => setTime(Date.now());\r\n const filterVal = `blur(${filter}em)`\r\n return [opacity, filterVal]\r\n}\r\n\r\nfunction AboutMe(props) {\r\n const aboutMeRef = useRef();\r\n\r\n useEffect(() => {\r\n if (props.getRect) {\r\n props.setAboutMeRect(props.getRect(aboutMeRef));\r\n\r\n }\r\n }, [])\r\n\r\n\r\n const [opacity, filterVal] = useFadeIn(props.showing)\r\n\r\n return (\r\n
\r\n \r\n {props.windowSize > 1199 ? \r\n
\r\n
\r\n
\r\n

Hello, I'm Matt Baber

\r\n

I am a Full Stack Web Developer

\r\n
\r\n
A little bit about me...
\r\n

I am 33 years old. I live in Euclid, Ohio with\r\n my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I\r\n have worked as a Chef, and have made the decision to leave that career path and learn how to\r\n program.

\r\n \"my\r\n
\r\n
\r\n
\r\n :\r\n
\r\n

about me

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

Hello, I'm Matt Baber

\r\n

I am a Full Stack Web Developer

\r\n
\r\n

A little bit about me...

\r\n

I am 33 years old. I live in Euclid, Ohio with\r\n my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I\r\n have worked as a Chef, and have made the decision to leave that career path and learn how to\r\n program.

\r\n \r\n \r\n \"my\r\n \r\n
\r\n
\r\n
\r\n
}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AboutMe;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Tech\\Tech.js",["87","88","89","90","91","92"],"import React, { useEffect, useState, useRef } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Techflip from \"../Techflip/Techflip.js\"\r\nimport Console from \"../Console/Console.js\";\r\nimport ConsoleReturn from \"../Consolereturn/ConsoleReturn.js\";\r\nimport { technologiesArray } from \"../../utils/techflipArray.js\";\r\nimport OverlayScrollbars from 'overlayscrollbars';\r\nimport { OverlayScrollbarsComponent } from \"overlayscrollbars-react\";\r\nimport \"./style.css\";\r\n\r\n\r\n\r\n\r\nfunction Tech(props) {\r\n const techRef = useRef();\r\n const scrollRef = useRef();\r\n const [arrayToRender, setArrayToRender] = useState([]);\r\n const [arrayCount, setArrayCount] = useState(0);\r\n const [selectedTech, setSelectedTech] = useState(\"\")\r\n const [consoleCount, setConsoleCount] = useState(1)\r\n // const [consoleChildren, setConsoleChildren] = useState([,

$

])\r\n const [consoleChildren, setConsoleChildren] = useState([])\r\n\r\n const [scroll, setScroll] = useState(false)\r\n\r\n \r\n\r\n useEffect(() => {\r\n setConsoleChildren(consoleChildren => [...consoleChildren, ,

$

])\r\n setScroll(true)\r\n }, [consoleCount])\r\n\r\n \r\n useEffect(() => {\r\n if (props.getRect) {\r\n props.setTechRect(props.getRect(techRef));\r\n }\r\n if (props.showing) {\r\n if (arrayCount === 0) {\r\n setArrayCount(arrayCount + 1)\r\n setTimeout(() => {\r\n setArrayToRender(arrayToRender => [...arrayToRender, technologiesArray[arrayCount]]);\r\n }, 3700);\r\n setTimeout(() => {\r\n let id = `tech${technologiesArray[arrayCount].tech}`\r\n let el = document.getElementById(id).childNodes[0]\r\n el.classList.remove(\"techFlipStart\")\r\n }, 4000);\r\n }\r\n }\r\n\r\n function printNodeTech(i) {\r\n const fireMessage = \" npm loadTech\"\r\n let span = document.getElementById(`consoleText${consoleCount}`)\r\n \r\n span.append(fireMessage[i])\r\n if (i + 1 < fireMessage.length) { // next character in the current string\r\n setTimeout(function () { printNodeTech(i + 1); }, 50);\r\n } else {\r\n setConsoleCount(consoleCount + 1)\r\n }\r\n \r\n }\r\n\r\n if (props.showing) printNodeTech(0)\r\n }, [props.showing])\r\n\r\n useEffect(() => {\r\n \r\n if (selectedTech) {\r\n \r\n let result = technologiesArray.filter(obj => {\r\n return obj.tech === selectedTech\r\n })\r\n let techObj = Object.entries(result[0])\r\n console.log(techObj)\r\n \r\n setConsoleChildren(consoleChildren => [...consoleChildren,\r\n

{

,\r\n

{techObj[0][0]}: {techObj[0][1]}

,\r\n

{techObj[2][0]}: {JSON.stringify(techObj[2][1])}

,\r\n (techObj[3]) ?

{techObj[3][0]}: {JSON.stringify(techObj[3][1])}

: \"\",\r\n

}

,\r\n // ,\r\n //

$

\r\n ])\r\n setConsoleCount(consoleCount + 1)\r\n \r\n\r\n }\r\n\r\n\r\n }, [selectedTech]);\r\n\r\n useEffect(() => {\r\n if (scrollRef) {\r\n const osInstance = scrollRef.current.osInstance();\r\n if (osInstance) {\r\n let info = osInstance.scroll()\r\n osInstance.scroll({ y: \"100%\" }, 100) \r\n }\r\n }\r\n setScroll(false)\r\n }, [scroll]);\r\n\r\n useEffect(() => {\r\n if (arrayToRender.length >= technologiesArray.length) return;\r\n if (arrayCount >= 1) {\r\n const delay = setTimeout(() => {\r\n setArrayToRender(arrayToRender => [...arrayToRender, technologiesArray[arrayCount]]);\r\n }, 300);\r\n setTimeout(() => {\r\n let id = `tech${technologiesArray[arrayCount].tech}`\r\n let el = document.getElementById(id).childNodes[0]\r\n el.classList.remove(\"techFlipStart\")\r\n console.log(consoleCount)\r\n }, 450);\r\n setArrayCount(arrayCount + 1)\r\n return () => clearTimeout(delay);\r\n }\r\n }, [arrayToRender]);\r\n\r\n function getTech(e) {\r\n setSelectedTech(e.target.getAttribute(\"value\"))\r\n }\r\n\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {technologiesArray.map((item) => {\r\n\r\n return (\r\n \r\n )\r\n })}\r\n\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n {consoleChildren}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Tech;\r\n\r\n\r\n\r\n//
\r\n//
\r\n// \r\n//

$

\r\n\r\n//
\r\n//
","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Projects\\Projects.js",["93","94","95","96","97","98","99","100","101","102","103","104","105"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contacts\\Contacts.js",["106","107","108","109","110"],"import React, { useEffect, useRef, useState } from \"react\";\r\nimport resume from \"../../Assets/mattBaberResume.pdf\";\r\n\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Contacts() {\r\n // const { contactsView } = useContext(ContactContext);\r\n // const { handleContactBtn} = useContext(ContactContext);\r\n const [contactsView, setContactsView] = useState(\"hidden\")\r\n const [copiedView, setCopiedView] = useState(\"collapse\")\r\n\r\n function handleContactBtn(event) {\r\n if ( contactsView === \"hidden\") {\r\n setContactsView(\"showing\");\r\n }else{\r\n setContactsView(\"hidden\")\r\n }\r\n }\r\n\r\n // const copyTextRef = useRef();\r\n // useEffect(() => {\r\n // const copyText = copyTextRef.current.firstChild.data;\r\n\r\n // copyTextRef.current.select();\r\n // document.execCommand(\"copy\");\r\n // }) \r\n\r\n \r\n function copyEmail() {\r\n const el = document.createElement('textarea');\r\n el.value = \"mbaber1142@gmail.com\";\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopiedView(\"\");\r\n setTimeout(function () { setCopiedView('collapse'); }, 750);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n

address copied to clipboard!

\r\n
\r\n\r\n \r\n
    \r\n
  • \r\n \"instagram\r\n
  • \r\n
  • \r\n \"linkedin\r\n
  • \r\n
  • \r\n \"github\r\n
  • \r\n
\r\n\r\n
\r\n
My Resume
\r\n \"pdf\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Contacts;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\textObject.js",[],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Techflip\\Techflip.js",["111","112","113","114","115","116","117"],"import React, { useState, useEffect } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport \"./style.css\";\r\n\r\n\r\n\r\nfunction Techflip(props) {\r\n const thisStyle = {\r\n color: props.thisTech.color,\r\n backgroundColor: props.thisTech.bgColor,\r\n clipPath: props.thisTech.clip\r\n }\r\n \r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Techflip;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\utils\\techflipArray.js",[],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Contactsmobile\\Contactsmobile.js",["118","119","120","121","122"],"C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Consolereturn\\ConsoleReturn.js",["123","124","125","126","127","128"],"import React, { useEffect, useState, useRef } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\n// import \"./style.css\";\r\n\r\n\r\n\r\nfunction ConsoleReturn(props) {\r\n return ( \r\n

user@mattbaber.io /github.com/baberMatt/portfolio

\r\n );\r\n}\r\n\r\nexport default ConsoleReturn;","C:\\WeAreDevo\\CaseCodingBootcamp\\Week20\\homework20reactPort\\portfolioReact\\src\\Components\\Console\\Console.js",["129","130","131","132","133","134"],"import React, { useEffect, useState, useRef } from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\n// import \"./style.css\";\r\n\r\n\r\n\r\nfunction Console(props) {\r\n return (\r\n
\r\n
\r\n {props.children}\r\n\r\n
\r\n
\r\n\r\n );\r\n}\r\n\r\nexport default Console;",{"ruleId":"135","replacedBy":"136"},{"ruleId":"137","replacedBy":"138"},{"ruleId":"139","severity":1,"message":"140","line":27,"column":5,"nodeType":"141","endLine":27,"endColumn":7,"suggestions":"142"},{"ruleId":"143","severity":1,"message":"144","line":7,"column":10,"nodeType":"145","messageId":"146","endLine":7,"endColumn":19},{"ruleId":"143","severity":1,"message":"147","line":17,"column":12,"nodeType":"145","messageId":"146","endLine":17,"endColumn":22},{"ruleId":"143","severity":1,"message":"148","line":26,"column":12,"nodeType":"145","messageId":"146","endLine":26,"endColumn":19},{"ruleId":"143","severity":1,"message":"149","line":31,"column":20,"nodeType":"145","messageId":"146","endLine":31,"endColumn":29},{"ruleId":"143","severity":1,"message":"150","line":32,"column":19,"nodeType":"145","messageId":"146","endLine":32,"endColumn":27},{"ruleId":"143","severity":1,"message":"151","line":40,"column":11,"nodeType":"145","messageId":"146","endLine":40,"endColumn":17},{"ruleId":"143","severity":1,"message":"152","line":41,"column":11,"nodeType":"145","messageId":"146","endLine":41,"endColumn":22},{"ruleId":"143","severity":1,"message":"153","line":89,"column":19,"nodeType":"145","messageId":"146","endLine":89,"endColumn":25},{"ruleId":"139","severity":1,"message":"154","line":141,"column":8,"nodeType":"141","endLine":141,"endColumn":21,"suggestions":"155"},{"ruleId":"139","severity":1,"message":"156","line":158,"column":8,"nodeType":"141","endLine":158,"endColumn":18,"suggestions":"157"},{"ruleId":"158","severity":1,"message":"159","line":216,"column":25,"nodeType":"160","messageId":"161","endLine":216,"endColumn":27},{"ruleId":"158","severity":1,"message":"159","line":263,"column":29,"nodeType":"160","messageId":"161","endLine":263,"endColumn":31},{"ruleId":"158","severity":1,"message":"159","line":286,"column":34,"nodeType":"160","messageId":"161","endLine":286,"endColumn":36},{"ruleId":"162","severity":1,"message":"163","line":395,"column":103,"nodeType":"164","messageId":"165","endLine":395,"endColumn":104},{"ruleId":"139","severity":1,"message":"166","line":206,"column":8,"nodeType":"141","endLine":206,"endColumn":18,"suggestions":"167"},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"139","severity":1,"message":"169","line":44,"column":6,"nodeType":"141","endLine":44,"endColumn":12,"suggestions":"170"},{"ruleId":"139","severity":1,"message":"171","line":59,"column":6,"nodeType":"141","endLine":59,"endColumn":8,"suggestions":"172"},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"143","severity":1,"message":"173","line":7,"column":8,"nodeType":"145","messageId":"146","endLine":7,"endColumn":25},{"ruleId":"139","severity":1,"message":"174","line":66,"column":8,"nodeType":"141","endLine":66,"endColumn":23,"suggestions":"175"},{"ruleId":"139","severity":1,"message":"176","line":93,"column":8,"nodeType":"141","endLine":93,"endColumn":22,"suggestions":"177"},{"ruleId":"143","severity":1,"message":"178","line":99,"column":21,"nodeType":"145","messageId":"146","endLine":99,"endColumn":25},{"ruleId":"139","severity":1,"message":"179","line":121,"column":8,"nodeType":"141","endLine":121,"endColumn":23,"suggestions":"180"},{"ruleId":"143","severity":1,"message":"181","line":1,"column":38,"nodeType":"145","messageId":"146","endLine":1,"endColumn":44},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"143","severity":1,"message":"182","line":4,"column":8,"nodeType":"145","messageId":"146","endLine":4,"endColumn":18},{"ruleId":"183","severity":1,"message":"184","line":13,"column":22,"nodeType":"185","endLine":13,"endColumn":121},{"ruleId":"183","severity":1,"message":"184","line":14,"column":21,"nodeType":"185","endLine":14,"endColumn":89},{"ruleId":"143","severity":1,"message":"186","line":19,"column":11,"nodeType":"145","messageId":"146","endLine":19,"endColumn":25},{"ruleId":"143","severity":1,"message":"187","line":20,"column":11,"nodeType":"145","messageId":"146","endLine":20,"endColumn":25},{"ruleId":"158","severity":1,"message":"159","line":29,"column":27,"nodeType":"160","messageId":"161","endLine":29,"endColumn":29},{"ruleId":"139","severity":1,"message":"188","line":47,"column":10,"nodeType":"141","endLine":47,"endColumn":25,"suggestions":"189"},{"ruleId":"183","severity":1,"message":"184","line":61,"column":29,"nodeType":"185","endLine":61,"endColumn":90},{"ruleId":"183","severity":1,"message":"184","line":69,"column":29,"nodeType":"185","endLine":69,"endColumn":90},{"ruleId":"183","severity":1,"message":"184","line":87,"column":29,"nodeType":"185","endLine":87,"endColumn":92},{"ruleId":"183","severity":1,"message":"184","line":95,"column":29,"nodeType":"185","endLine":95,"endColumn":88},{"ruleId":"143","severity":1,"message":"190","line":1,"column":17,"nodeType":"145","messageId":"146","endLine":1,"endColumn":26},{"ruleId":"143","severity":1,"message":"181","line":1,"column":28,"nodeType":"145","messageId":"146","endLine":1,"endColumn":34},{"ruleId":"183","severity":1,"message":"184","line":47,"column":19,"nodeType":"185","endLine":47,"endColumn":118},{"ruleId":"183","severity":1,"message":"184","line":52,"column":23,"nodeType":"185","endLine":52,"endColumn":120},{"ruleId":"191","severity":1,"message":"192","line":71,"column":25,"nodeType":"185","endLine":71,"endColumn":81},{"ruleId":"143","severity":1,"message":"193","line":1,"column":17,"nodeType":"145","messageId":"146","endLine":1,"endColumn":25},{"ruleId":"143","severity":1,"message":"190","line":1,"column":27,"nodeType":"145","messageId":"146","endLine":1,"endColumn":36},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"143","severity":1,"message":"194","line":2,"column":21,"nodeType":"145","messageId":"146","endLine":2,"endColumn":24},{"ruleId":"143","severity":1,"message":"195","line":2,"column":26,"nodeType":"145","messageId":"146","endLine":2,"endColumn":29},{"ruleId":"143","severity":1,"message":"196","line":8,"column":11,"nodeType":"145","messageId":"146","endLine":8,"endColumn":20},{"ruleId":"183","severity":1,"message":"184","line":18,"column":21,"nodeType":"185","endLine":18,"endColumn":115},{"ruleId":"143","severity":1,"message":"190","line":1,"column":17,"nodeType":"145","messageId":"146","endLine":1,"endColumn":26},{"ruleId":"143","severity":1,"message":"181","line":1,"column":28,"nodeType":"145","messageId":"146","endLine":1,"endColumn":34},{"ruleId":"183","severity":1,"message":"184","line":46,"column":11,"nodeType":"185","endLine":46,"endColumn":127},{"ruleId":"183","severity":1,"message":"184","line":51,"column":13,"nodeType":"185","endLine":51,"endColumn":110},{"ruleId":"191","severity":1,"message":"192","line":72,"column":15,"nodeType":"185","endLine":72,"endColumn":71},{"ruleId":"143","severity":1,"message":"190","line":1,"column":17,"nodeType":"145","messageId":"146","endLine":1,"endColumn":26},{"ruleId":"143","severity":1,"message":"193","line":1,"column":28,"nodeType":"145","messageId":"146","endLine":1,"endColumn":36},{"ruleId":"143","severity":1,"message":"181","line":1,"column":38,"nodeType":"145","messageId":"146","endLine":1,"endColumn":44},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"143","severity":1,"message":"194","line":2,"column":21,"nodeType":"145","messageId":"146","endLine":2,"endColumn":24},{"ruleId":"143","severity":1,"message":"195","line":2,"column":26,"nodeType":"145","messageId":"146","endLine":2,"endColumn":29},{"ruleId":"143","severity":1,"message":"190","line":1,"column":17,"nodeType":"145","messageId":"146","endLine":1,"endColumn":26},{"ruleId":"143","severity":1,"message":"193","line":1,"column":28,"nodeType":"145","messageId":"146","endLine":1,"endColumn":36},{"ruleId":"143","severity":1,"message":"181","line":1,"column":38,"nodeType":"145","messageId":"146","endLine":1,"endColumn":44},{"ruleId":"143","severity":1,"message":"168","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":19},{"ruleId":"143","severity":1,"message":"194","line":2,"column":21,"nodeType":"145","messageId":"146","endLine":2,"endColumn":24},{"ruleId":"143","severity":1,"message":"195","line":2,"column":26,"nodeType":"145","messageId":"146","endLine":2,"endColumn":29},"no-native-reassign",["197"],"no-negated-in-lhs",["198"],"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'windowSize'. Either include it or remove the dependency array.","ArrayExpression",["199"],"no-unused-vars","'propTypes' is defined but never used.","Identifier","unusedVar","'aboutMeKey' is assigned a value but never used.","'techKey' is assigned a value but never used.","'setHeight' is assigned a value but never used.","'setWidth' is assigned a value but never used.","'aboutA' is assigned a value but never used.","'mainContent' is assigned a value but never used.","'mcRect' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'props.windowSize'. Either include it or remove the dependency array.",["200"],"React Hook useEffect has missing dependencies: 'props.windowSize', 'techArray', and 'techRefs'. Either include them or remove the dependency array.",["201"],"eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","no-sequences","Unexpected use of comma operator.","SequenceExpression","unexpectedCommaExpression","React Hook useEffect has a missing dependency: 'branchLine'. Either include it or remove the dependency array.",["202"],"'Container' is defined but never used.","React Hook useEffect has a missing dependency: 'duration'. Either include it or remove the dependency array.",["203"],"React Hook useEffect has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useEffect call and refer to those specific props inside useEffect.",["204"],"'OverlayScrollbars' is defined but never used.","React Hook useEffect has missing dependencies: 'arrayCount', 'consoleCount', and 'props'. Either include them or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useEffect call and refer to those specific props inside useEffect.",["205"],"React Hook useEffect has a missing dependency: 'consoleCount'. Either include it or remove the dependency array. You can also do a functional update 'setConsoleCount(c => ...)' if you only need 'consoleCount' in the 'setConsoleCount' call.",["206"],"'info' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'arrayCount' and 'consoleCount'. Either include them or remove the dependency array. You can also do a functional update 'setArrayCount(a => ...)' if you only need 'arrayCount' in the 'setArrayCount' call.",["207"],"'useRef' is defined but never used.","'Streamline' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'streamLineLink' is assigned a value but never used.","'streamLineRepo' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'checkShowing'. Either include it or remove the dependency array.",["208"],"'useEffect' is defined but never used.","react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","'useState' is defined but never used.","'Row' is defined but never used.","'Col' is defined but never used.","'thisStyle' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"209","fix":"210"},{"desc":"211","fix":"212"},{"desc":"213","fix":"214"},{"desc":"215","fix":"216"},{"desc":"217","fix":"218"},{"desc":"219","fix":"220"},{"desc":"221","fix":"222"},{"desc":"223","fix":"224"},{"desc":"225","fix":"226"},{"desc":"227","fix":"228"},"Update the dependencies array to be: [windowSize]",{"range":"229","text":"230"},"Update the dependencies array to be: [aboutMeRect, props.windowSize]",{"range":"231","text":"232"},"Update the dependencies array to be: [props.windowSize, techArray, techRect, techRefs]",{"range":"233","text":"234"},"Update the dependencies array to be: [branchLine, mainLine]",{"range":"235","text":"236"},"Update the dependencies array to be: [duration, fire]",{"range":"237","text":"238"},"Update the dependencies array to be: [props]",{"range":"239","text":"240"},"Update the dependencies array to be: [arrayCount, consoleCount, props, props.showing]",{"range":"241","text":"242"},"Update the dependencies array to be: [consoleCount, selectedTech]",{"range":"243","text":"244"},"Update the dependencies array to be: [arrayCount, arrayToRender, consoleCount]",{"range":"245","text":"246"},"Update the dependencies array to be: [checkShowing, props.showing]",{"range":"247","text":"248"},[1015,1017],"[windowSize]",[5276,5289],"[aboutMeRect, props.windowSize]",[5960,5970],"[props.windowSize, techArray, techRect, techRefs]",[6723,6733],"[branchLine, mainLine]",[1046,1052],"[duration, fire]",[1360,1362],"[props]",[2689,2704],"[arrayCount, consoleCount, props, props.showing]",[3727,3741],"[consoleCount, selectedTech]",[4763,4778],"[arrayCount, arrayToRender, consoleCount]",[1846,1861],"[checkShowing, props.showing]"] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 70bfe6a..6de7f22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10878,6 +10878,16 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, + "overlayscrollbars": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", + "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==" + }, + "overlayscrollbars-react": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/overlayscrollbars-react/-/overlayscrollbars-react-0.2.3.tgz", + "integrity": "sha512-eN/JsEtJvPulOXOZXIdo1H90eriUWcgj4TwSdOcchk2M4uY2/BpsHlZ2+0viZMLXTcNQNJz+/4m47NugSBg+0g==" + }, "p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", diff --git a/package.json b/package.json index e96edfa..aeb6085 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "classnames": "^2.2.6", "gh-pages": "^3.2.3", "jquery": "^3.5.1", + "overlayscrollbars": "^1.13.1", + "overlayscrollbars-react": "^0.2.3", "react": "^17.0.1", "react-bootstrap": "^1.4.3", "react-dom": "^17.0.1", diff --git a/src/App.js b/src/App.js index 211b162..93be97c 100644 --- a/src/App.js +++ b/src/App.js @@ -7,6 +7,14 @@ import Video from "./Assets/jumboLoopBG.mp4" function App() { const [windowSize, setwindowSize] = useState(window.innerWidth); + const [quoteNumber, setQuoteNumber] = useState(0) + const quotes = [ + [`"Have no fear of perfection`, ` ... you'll never reach it."`], + [`"If you touch one thing `, `with deep awareness, you touch everything"`], + [`"Only those who attempt `, `the absurd will achieve the impossible."`], + [`"Many of the truths we cling to`, `depend greatly on our own point of view."`], + ] + const updateWindowsSize = () => { setwindowSize(window.innerWidth) } @@ -18,18 +26,20 @@ function App() { return () => window.removeEventListener("resize", updateWindowsSize); },[]); + useEffect(() => { + setQuoteNumber(Math.floor(Math.random() * 4)) + },[]); + return ( -
+
{windowSize>1199 ? : } { console.log("effect called") const start = 1500; @@ -47,12 +49,20 @@ function useFadeIn(fire) { } function AboutMe(props) { + const aboutMeRef = useRef(); + + useEffect(() => { + if (props.getRect) { + props.setAboutMeRect(props.getRect(aboutMeRef)); + + } + }, []) + const [opacity, filterVal] = useFadeIn(props.showing) - console.log(props.windowSize) return ( -
+
{props.windowSize > 1199 ?
@@ -63,9 +73,9 @@ function AboutMe(props) {
A little bit about me...

I am 33 years old. I live in Euclid, Ohio with - my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I - have worked as a Chef, and have made the decision to leave that career path and learn how to - program.

+ my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I + have worked as a Chef, and have made the decision to leave that career path and learn how to + program.

my portrait
@@ -82,9 +92,9 @@ function AboutMe(props) {

A little bit about me...

I am 33 years old. I live in Euclid, Ohio with - my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I - have worked as a Chef, and have made the decision to leave that career path and learn how to - program.

+ my wife Emily, and our daughter Dottie and our dog and cat, Rudy and Snacky. My whole adult life I + have worked as a Chef, and have made the decision to leave that career path and learn how to + program.

my portrait diff --git a/src/Components/Canvas/index.js b/src/Components/Canvas/index.js index 954e5de..3d8daf9 100644 --- a/src/Components/Canvas/index.js +++ b/src/Components/Canvas/index.js @@ -191,7 +191,13 @@ const Canvas = props => { render(ratio + 0.01 ); }); } + + + drawLine(context, branchLine) + + } + render() // return () => { diff --git a/src/Components/Console/Console.js b/src/Components/Console/Console.js new file mode 100644 index 0000000..54a33b9 --- /dev/null +++ b/src/Components/Console/Console.js @@ -0,0 +1,19 @@ +import React, { useEffect, useState, useRef } from "react"; +import { Container, Row, Col } from "react-bootstrap"; +// import "./style.css"; + + + +function Console(props) { + return ( +
+
+ {props.children} + +
+
+ + ); +} + +export default Console; \ No newline at end of file diff --git a/src/Components/Consolereturn/ConsoleReturn.js b/src/Components/Consolereturn/ConsoleReturn.js new file mode 100644 index 0000000..8af14b6 --- /dev/null +++ b/src/Components/Consolereturn/ConsoleReturn.js @@ -0,0 +1,13 @@ +import React, { useEffect, useState, useRef } from "react"; +import { Container, Row, Col } from "react-bootstrap"; +// import "./style.css"; + + + +function ConsoleReturn(props) { + return ( +

user@mattbaber.io /github.com/baberMatt/portfolio

+ ); +} + +export default ConsoleReturn; \ No newline at end of file diff --git a/src/Components/Contacts/Contacts.js b/src/Components/Contacts/Contacts.js index fa69a02..afda6ad 100644 --- a/src/Components/Contacts/Contacts.js +++ b/src/Components/Contacts/Contacts.js @@ -49,9 +49,8 @@ function Contacts() {