diff --git a/.eslintcache b/.eslintcache
index b593b39..e0d8da5 100644
--- a/.eslintcache
+++ b/.eslintcache
@@ -1 +1 @@
-[{"/Users/andreidobos/Documents/mypage/react-page/src/App.js":"1","/Users/andreidobos/Documents/mypage/react-page/src/themes/index.js":"2","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/index.js":"3","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiOutlinedInput.js":"4","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSelect.js":"5","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiMenuItem.js":"6","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSwitch.js":"7","/Users/andreidobos/Documents/mypage/react-page/src/themes/Theme.js":"8","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiInputBase.js":"9","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/index.js":"10","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/ErrorBoundary.jsx":"11","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/CustomRoute.jsx":"12","/Users/andreidobos/Documents/mypage/react-page/src/routes/index.js":"13","/Users/andreidobos/Documents/mypage/react-page/src/routes/Routes.js":"14","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/index.js":"15","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/Main.jsx":"16","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/Header.jsx":"17","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/index.js":"18","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/Footer.jsx":"19","/Users/andreidobos/Documents/mypage/react-page/src/pages/about/About.jsx":"20","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/index.js":"21","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/Navigation.jsx":"22","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/index.js":"23","/Users/andreidobos/Documents/mypage/react-page/src/reportWebVitals.js":"24","/Users/andreidobos/Documents/mypage/react-page/src/pages/about/index.js":"25","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/HideOnScroll.jsx":"26","/Users/andreidobos/Documents/mypage/react-page/src/index.js":"27","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/index.js":"28","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/index.js":"29","/Users/andreidobos/Documents/mypage/react-page/src/pages/games/Games.jsx":"30","/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/index.js":"31","/Users/andreidobos/Documents/mypage/react-page/src/pages/games/index.js":"32","/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/Snippets.jsx":"33","/Users/andreidobos/Documents/mypage/react-page/src/pages/home/Home.jsx":"34","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiAlert.js":"35","/Users/andreidobos/Documents/mypage/react-page/src/pages/home/index.js":"36","/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/Projects.jsx":"37","/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/index.js":"38"},{"size":403,"mtime":1609851872251,"results":"39","hashOfConfig":"40"},{"size":35,"mtime":1609233409054,"results":"41","hashOfConfig":"40"},{"size":354,"mtime":1609836027060,"results":"42","hashOfConfig":"40"},{"size":1191,"mtime":1609837259618,"results":"43","hashOfConfig":"40"},{"size":1327,"mtime":1609837476928,"results":"44","hashOfConfig":"40"},{"size":238,"mtime":1609836455755,"results":"45","hashOfConfig":"40"},{"size":778,"mtime":1609836275604,"results":"46","hashOfConfig":"40"},{"size":641,"mtime":1609860382062,"results":"47","hashOfConfig":"40"},{"size":238,"mtime":1609836401538,"results":"48","hashOfConfig":"40"},{"size":37,"mtime":1609278159332,"results":"49","hashOfConfig":"40"},{"size":931,"mtime":1609237825673,"results":"50","hashOfConfig":"40"},{"size":354,"mtime":1609317383013,"results":"51","hashOfConfig":"40"},{"size":36,"mtime":1609278530430,"results":"52","hashOfConfig":"40"},{"size":1380,"mtime":1609860488795,"results":"53","hashOfConfig":"40"},{"size":39,"mtime":1609237493841,"results":"54","hashOfConfig":"40"},{"size":886,"mtime":1609860115589,"results":"55","hashOfConfig":"40"},{"size":704,"mtime":1609861698203,"results":"56","hashOfConfig":"40"},{"size":36,"mtime":1609277680624,"results":"57","hashOfConfig":"40"},{"size":136,"mtime":1609317636229,"results":"58","hashOfConfig":"40"},{"size":118,"mtime":1609837744248,"results":"59","hashOfConfig":"40"},{"size":36,"mtime":1609277605855,"results":"60","hashOfConfig":"40"},{"size":3730,"mtime":1609862363296,"results":"61","hashOfConfig":"40"},{"size":40,"mtime":1609319192684,"results":"62","hashOfConfig":"40"},{"size":362,"mtime":1609228080891,"results":"63","hashOfConfig":"40"},{"size":35,"mtime":1609238255023,"results":"64","hashOfConfig":"40"},{"size":377,"mtime":1609323836257,"results":"65","hashOfConfig":"40"},{"size":500,"mtime":1609228080890,"results":"66","hashOfConfig":"40"},{"size":46,"mtime":1609323688626,"results":"67","hashOfConfig":"40"},{"size":34,"mtime":1609239096427,"results":"68","hashOfConfig":"40"},{"size":118,"mtime":1609837717934,"results":"69","hashOfConfig":"40"},{"size":34,"mtime":1609834175825,"results":"70","hashOfConfig":"40"},{"size":31,"mtime":1609834084191,"results":"71","hashOfConfig":"40"},{"size":127,"mtime":1609837685647,"results":"72","hashOfConfig":"40"},{"size":115,"mtime":1609837712098,"results":"73","hashOfConfig":"40"},{"size":685,"mtime":1609835632061,"results":"74","hashOfConfig":"40"},{"size":34,"mtime":1609834453371,"results":"75","hashOfConfig":"40"},{"size":145,"mtime":1609837705831,"results":"76","hashOfConfig":"40"},{"size":34,"mtime":1609834124372,"results":"77","hashOfConfig":"40"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},"19c291c",{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"86","usedDeprecatedRules":"87"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"90"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"95"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"104"},{"filePath":"105","messages":"106","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"104"},{"filePath":"113","messages":"114","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"115","messages":"116","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"117","messages":"118","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"119","messages":"120","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"121","messages":"122","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"123","messages":"124","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"125","messages":"126","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"127","messages":"128","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"129"},{"filePath":"130","messages":"131","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"132","messages":"133","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"134","messages":"135","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"104"},{"filePath":"136","messages":"137","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"138"},{"filePath":"139","messages":"140","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"141"},{"filePath":"142","messages":"143","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"144"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"147","messages":"148","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"149","messages":"150","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},{"filePath":"155","messages":"156","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"157","messages":"158","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"83"},{"filePath":"161","messages":"162","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"104"},{"filePath":"163","messages":"164","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"87"},"/Users/andreidobos/Documents/mypage/react-page/src/App.js",[],["165","166"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/index.js",[],["167","168"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/index.js",["169"],"import MuiAlert from './MuiAlert';\nimport MuiInputBase from './MuiInputBase';\nimport MuiMenuItem from './MuiMenuItem';\nimport MuiOutlinedInput from './MuiOutlinedInput';\nimport MuiSelect from './MuiSelect';\nimport MuiSwitch from './MuiSwitch';\n\nexport default {\n MuiAlert,\n MuiInputBase,\n MuiMenuItem,\n MuiOutlinedInput,\n MuiSelect,\n MuiSwitch,\n};\n",["170","171"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiOutlinedInput.js",[],["172","173"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSelect.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiMenuItem.js",[],["174","175"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSwitch.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/Theme.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiInputBase.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/index.js",[],["176","177"],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/ErrorBoundary.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/CustomRoute.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/Routes.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/Main.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/Header.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/Footer.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/about/About.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/Navigation.jsx",["178"],"import React, { useState, useEffect, createRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n Container,\n Hidden,\n Tabs,\n Tab,\n useMediaQuery,\n IconButton,\n SwipeableDrawer,\n} from '@material-ui/core';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport MenuOpenIcon from '@material-ui/icons/MenuOpen';\nimport { makeStyles, useTheme } from '@material-ui/styles';\n\nconst useStyles = makeStyles((theme) => ({\n toolbar: theme.mixins.toolbar,\n\n drawerIconContainer: {\n alignSelf: 'center',\n '&:hover': { backgroundColor: 'transparent' },\n [theme.breakpoints.down('md')]: { padding: 0 },\n },\n drawerIcon: {\n height: '40px',\n width: '40px',\n color: 'white',\n },\n drawer: { minWidth: '50vw' },\n tab: {\n alignItems: 'flex-start',\n fontSize: '2rem',\n textTransform: 'capitalize',\n\n },\n right: {},\n}));\n\nconst Navigation = (props) => {\n const classes = useStyles();\n const theme = useTheme();\n\n const matches = useMediaQuery(theme.breakpoints.down('sm'));\n const iOS = process.browser && /iPad|iPhone|iPod/.test(navigator.userAgent);\n const [value, setValue] = useState(0);\n const [openDrawer, setOpenDrawer] = useState(false);\n\n const handleTabsChange = (e, newValue) => {\n setValue(newValue);\n setOpenDrawer(false);\n };\n\n const open = () => {\n setOpenDrawer(true);\n };\n const close = () => {\n setOpenDrawer(false);\n };\n const wrapper = createRef();\n\n return (\n \n \n setOpenDrawer(!openDrawer)}\n disableRipple\n className={classes.drawerIconContainer}\n >\n {openDrawer ? (\n \n ) : (\n \n )}\n \n \n\n {matches ? (\n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\nexport default Navigation;\n","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/reportWebVitals.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/about/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/HideOnScroll.jsx",[],["179","180"],"/Users/andreidobos/Documents/mypage/react-page/src/index.js",[],["181","182"],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/index.js",[],["183","184"],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/games/Games.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/games/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/Snippets.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/home/Home.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiAlert.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/home/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/Projects.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/index.js",[],{"ruleId":"185","replacedBy":"186"},{"ruleId":"187","replacedBy":"188"},{"ruleId":"185","replacedBy":"189"},{"ruleId":"187","replacedBy":"190"},{"ruleId":"191","severity":1,"message":"192","line":8,"column":1,"nodeType":"193","endLine":15,"endColumn":3},{"ruleId":"185","replacedBy":"194"},{"ruleId":"187","replacedBy":"195"},{"ruleId":"185","replacedBy":"196"},{"ruleId":"187","replacedBy":"197"},{"ruleId":"185","replacedBy":"198"},{"ruleId":"187","replacedBy":"199"},{"ruleId":"185","replacedBy":"200"},{"ruleId":"187","replacedBy":"201"},{"ruleId":"202","severity":1,"message":"203","line":1,"column":27,"nodeType":"204","messageId":"205","endLine":1,"endColumn":36},{"ruleId":"185","replacedBy":"206"},{"ruleId":"187","replacedBy":"207"},{"ruleId":"185","replacedBy":"208"},{"ruleId":"187","replacedBy":"209"},{"ruleId":"185","replacedBy":"210"},{"ruleId":"187","replacedBy":"211"},"no-native-reassign",["212"],"no-negated-in-lhs",["213"],["212"],["213"],"import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration",["212"],["213"],["212"],["213"],["212"],["213"],["212"],["213"],"no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar",["212"],["213"],["212"],["213"],["212"],["213"],"no-global-assign","no-unsafe-negation"]
\ No newline at end of file
+[{"/Users/andreidobos/Documents/mypage/react-page/src/App.js":"1","/Users/andreidobos/Documents/mypage/react-page/src/themes/index.js":"2","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/index.js":"3","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiOutlinedInput.js":"4","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSelect.js":"5","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiMenuItem.js":"6","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSwitch.js":"7","/Users/andreidobos/Documents/mypage/react-page/src/themes/Theme.js":"8","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiInputBase.js":"9","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/index.js":"10","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/ErrorBoundary.jsx":"11","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/CustomRoute.jsx":"12","/Users/andreidobos/Documents/mypage/react-page/src/routes/index.js":"13","/Users/andreidobos/Documents/mypage/react-page/src/routes/Routes.js":"14","/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/index.js":"15","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/Main.jsx":"16","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/Header.jsx":"17","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/index.js":"18","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/Footer.jsx":"19","/Users/andreidobos/Documents/mypage/react-page/src/pages/about/About.jsx":"20","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/index.js":"21","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/Navigation.jsx":"22","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/index.js":"23","/Users/andreidobos/Documents/mypage/react-page/src/reportWebVitals.js":"24","/Users/andreidobos/Documents/mypage/react-page/src/pages/about/index.js":"25","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/HideOnScroll.jsx":"26","/Users/andreidobos/Documents/mypage/react-page/src/index.js":"27","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/index.js":"28","/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/index.js":"29","/Users/andreidobos/Documents/mypage/react-page/src/pages/games/Games.jsx":"30","/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/index.js":"31","/Users/andreidobos/Documents/mypage/react-page/src/pages/games/index.js":"32","/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/Snippets.jsx":"33","/Users/andreidobos/Documents/mypage/react-page/src/pages/home/Home.jsx":"34","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiAlert.js":"35","/Users/andreidobos/Documents/mypage/react-page/src/pages/home/index.js":"36","/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/Projects.jsx":"37","/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/index.js":"38","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/White.jsx":"39","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/footer/index.js":"40","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/hideOnScroll/index.js":"41","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/hideOnScroll/HideOnScroll.jsx":"42","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/footer/Footer.jsx":"43","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/index.js":"44","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/navigation/index.js":"45","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/navigation/Navigation.jsx":"46","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/index.js":"47","/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/Header.jsx":"48"},{"size":403,"mtime":1609851872251,"results":"49","hashOfConfig":"50"},{"size":35,"mtime":1609233409054,"results":"51","hashOfConfig":"50"},{"size":354,"mtime":1609836027060,"results":"52","hashOfConfig":"50"},{"size":1191,"mtime":1609837259618,"results":"53","hashOfConfig":"50"},{"size":1327,"mtime":1609837476928,"results":"54","hashOfConfig":"50"},{"size":238,"mtime":1609836455755,"results":"55","hashOfConfig":"50"},{"size":778,"mtime":1609836275604,"results":"56","hashOfConfig":"50"},{"size":641,"mtime":1609860382062,"results":"57","hashOfConfig":"50"},{"size":238,"mtime":1609836401538,"results":"58","hashOfConfig":"50"},{"size":37,"mtime":1609278159332,"results":"59","hashOfConfig":"50"},{"size":931,"mtime":1609237825673,"results":"60","hashOfConfig":"50"},{"size":354,"mtime":1609317383013,"results":"61","hashOfConfig":"50"},{"size":36,"mtime":1609278530430,"results":"62","hashOfConfig":"50"},{"size":1419,"mtime":1610013391964,"results":"63","hashOfConfig":"50"},{"size":39,"mtime":1609237493841,"results":"64","hashOfConfig":"50"},{"size":956,"mtime":1610313448027,"results":"65","hashOfConfig":"50"},{"size":701,"mtime":1610295657814,"results":"66","hashOfConfig":"50"},{"size":36,"mtime":1609277680624,"results":"67","hashOfConfig":"50"},{"size":461,"mtime":1610313764481,"results":"68","hashOfConfig":"50"},{"size":2796,"mtime":1610312501893,"results":"69","hashOfConfig":"50"},{"size":36,"mtime":1609277605855,"results":"70","hashOfConfig":"50"},{"size":4934,"mtime":1610325247419,"results":"71","hashOfConfig":"50"},{"size":40,"mtime":1609319192684,"results":"72","hashOfConfig":"50"},{"size":362,"mtime":1609228080891,"results":"73","hashOfConfig":"50"},{"size":35,"mtime":1609238255023,"results":"74","hashOfConfig":"50"},{"size":377,"mtime":1609323836257,"results":"75","hashOfConfig":"50"},{"size":500,"mtime":1609228080890,"results":"76","hashOfConfig":"50"},{"size":46,"mtime":1609323688626,"results":"77","hashOfConfig":"50"},{"size":34,"mtime":1609239096427,"results":"78","hashOfConfig":"50"},{"size":171,"mtime":1610313507457,"results":"79","hashOfConfig":"50"},{"size":34,"mtime":1609834175825,"results":"80","hashOfConfig":"50"},{"size":31,"mtime":1609834084191,"results":"81","hashOfConfig":"50"},{"size":192,"mtime":1610313550775,"results":"82","hashOfConfig":"50"},{"size":609,"mtime":1610355812308,"results":"83","hashOfConfig":"50"},{"size":685,"mtime":1609835632061,"results":"84","hashOfConfig":"50"},{"size":34,"mtime":1609834453371,"results":"85","hashOfConfig":"50"},{"size":188,"mtime":1610313536746,"results":"86","hashOfConfig":"50"},{"size":34,"mtime":1609834124372,"results":"87","hashOfConfig":"50"},{"size":1162,"mtime":1610309886807,"results":"88","hashOfConfig":"50"},{"size":36,"mtime":1610013023235,"results":"89","hashOfConfig":"50"},{"size":46,"mtime":1610013023244,"results":"90","hashOfConfig":"50"},{"size":377,"mtime":1610013023241,"results":"91","hashOfConfig":"50"},{"size":1381,"mtime":1610311957194,"results":"92","hashOfConfig":"50"},{"size":36,"mtime":1610013023246,"results":"93","hashOfConfig":"50"},{"size":40,"mtime":1610013023251,"results":"94","hashOfConfig":"50"},{"size":3730,"mtime":1610013023249,"results":"95","hashOfConfig":"50"},{"size":35,"mtime":1610012356444,"results":"96","hashOfConfig":"50"},{"size":1762,"mtime":1610356395862,"results":"97","hashOfConfig":"50"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},"19c291c",{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"103"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"106","usedDeprecatedRules":"107"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"110"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"113"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"121","messages":"122","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"123","messages":"124","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"125","messages":"126","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"107"},{"filePath":"127","messages":"128","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"129","messages":"130","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"132","messages":"133","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"110"},{"filePath":"136","messages":"137","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"142","messages":"143","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"144","messages":"145","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"110"},{"filePath":"148","messages":"149","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"150","messages":"151","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"152","messages":"153","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"107"},{"filePath":"154","messages":"155","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"156","messages":"157","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"158"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"161"},{"filePath":"162","messages":"163","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"164","messages":"165","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"113"},{"filePath":"166","messages":"167","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"170","messages":"171","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"172","messages":"173","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"174","messages":"175","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"176"},{"filePath":"177","messages":"178","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"179","messages":"180","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"181","messages":"182","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"183","messages":"184","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"185","messages":"186","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"187","messages":"188","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"100"},{"filePath":"189","messages":"190","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"131"},{"filePath":"191","messages":"192","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"110"},{"filePath":"193","messages":"194","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"195","messages":"196","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"197","messages":"198","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"199","messages":"200","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"201","messages":"202","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"203","messages":"204","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/andreidobos/Documents/mypage/react-page/src/App.js",[],["205","206"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/index.js",[],["207","208"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/index.js",["209"],"import MuiAlert from './MuiAlert';\nimport MuiInputBase from './MuiInputBase';\nimport MuiMenuItem from './MuiMenuItem';\nimport MuiOutlinedInput from './MuiOutlinedInput';\nimport MuiSelect from './MuiSelect';\nimport MuiSwitch from './MuiSwitch';\n\nexport default {\n MuiAlert,\n MuiInputBase,\n MuiMenuItem,\n MuiOutlinedInput,\n MuiSelect,\n MuiSwitch,\n};\n",["210","211"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiOutlinedInput.js",[],["212","213"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSelect.js",[],["214","215"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiMenuItem.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiSwitch.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/themes/Theme.js",[],["216","217"],"/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiInputBase.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/ErrorBoundary.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/customRoute/CustomRoute.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/index.js",[],["218","219"],"/Users/andreidobos/Documents/mypage/react-page/src/routes/Routes.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/routes/components/errorBoundary/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/Main.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/Header.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/footer/Footer.jsx",["220","221"],"/Users/andreidobos/Documents/mypage/react-page/src/pages/about/About.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/Navigation.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/navigation/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/reportWebVitals.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/about/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/HideOnScroll.jsx",[],["222","223"],"/Users/andreidobos/Documents/mypage/react-page/src/index.js",[],["224","225"],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/components/header/hideOnScroll/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/main/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/games/Games.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/games/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/snippets/Snippets.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/home/Home.jsx",["226","227","228"],"import React from 'react';\nimport { Container, Grid, Typography, Link } from '@material-ui/core';\nimport About from '../about';\nimport Games from '../games';\nimport Snippets from '../snippets';\nimport Projects from '../projects';\n\nconst Home = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Home;\n","/Users/andreidobos/Documents/mypage/react-page/src/themes/overrides/MuiAlert.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/home/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/Projects.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/pages/projects/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/White.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/footer/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/hideOnScroll/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/hideOnScroll/HideOnScroll.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/footer/Footer.jsx",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/navigation/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/navigation/Navigation.jsx",["229"],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/index.js",[],"/Users/andreidobos/Documents/mypage/react-page/src/layouts/white/components/header/Header.jsx",[],{"ruleId":"230","replacedBy":"231"},{"ruleId":"232","replacedBy":"233"},{"ruleId":"230","replacedBy":"234"},{"ruleId":"232","replacedBy":"235"},{"ruleId":"236","severity":1,"message":"237","line":8,"column":1,"nodeType":"238","endLine":15,"endColumn":3},{"ruleId":"230","replacedBy":"239"},{"ruleId":"232","replacedBy":"240"},{"ruleId":"230","replacedBy":"241"},{"ruleId":"232","replacedBy":"242"},{"ruleId":"230","replacedBy":"243"},{"ruleId":"232","replacedBy":"244"},{"ruleId":"230","replacedBy":"245"},{"ruleId":"232","replacedBy":"246"},{"ruleId":"230","replacedBy":"247"},{"ruleId":"232","replacedBy":"248"},{"ruleId":"249","severity":1,"message":"250","line":2,"column":10,"nodeType":"251","messageId":"252","endLine":2,"endColumn":16},{"ruleId":"249","severity":1,"message":"253","line":2,"column":18,"nodeType":"251","messageId":"252","endLine":2,"endColumn":25},{"ruleId":"230","replacedBy":"254"},{"ruleId":"232","replacedBy":"255"},{"ruleId":"230","replacedBy":"256"},{"ruleId":"232","replacedBy":"257"},{"ruleId":"249","severity":1,"message":"258","line":2,"column":10,"nodeType":"251","messageId":"252","endLine":2,"endColumn":19},{"ruleId":"249","severity":1,"message":"259","line":2,"column":27,"nodeType":"251","messageId":"252","endLine":2,"endColumn":37},{"ruleId":"249","severity":1,"message":"260","line":2,"column":39,"nodeType":"251","messageId":"252","endLine":2,"endColumn":43},{"ruleId":"249","severity":1,"message":"261","line":1,"column":27,"nodeType":"251","messageId":"252","endLine":1,"endColumn":36},"no-native-reassign",["262"],"no-negated-in-lhs",["263"],["262"],["263"],"import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration",["262"],["263"],["262"],["263"],["262"],["263"],["262"],["263"],["262"],["263"],"no-unused-vars","'AppBar' is defined but never used.","Identifier","unusedVar","'Toolbar' is defined but never used.",["262"],["263"],["262"],["263"],"'Container' is defined but never used.","'Typography' is defined but never used.","'Link' is defined but never used.","'useEffect' is defined 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 caf652a..b44c66a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1572,6 +1572,8 @@
},
"@material-ui/core": {
"version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.2.tgz",
+ "integrity": "sha512-/D1+AQQeYX/WhT/FUk78UCRj8ch/RCglsQLYujYTIqPSJlwZHKcvHidNeVhODXeApojeXjkl0tWdk5C9ofwOkQ==",
"requires": {
"@babel/runtime": "^7.4.4",
"@material-ui/styles": "^4.11.2",
@@ -1596,6 +1598,8 @@
},
"@material-ui/icons": {
"version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz",
+ "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==",
"requires": {
"@babel/runtime": "^7.4.4"
}
@@ -1896,6 +1900,8 @@
},
"@testing-library/jest-dom": {
"version": "5.11.6",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.6.tgz",
+ "integrity": "sha512-cVZyUNRWwUKI0++yepYpYX7uhrP398I+tGz4zOlLVlUYnZS+Svuxv4fwLeCIy7TnBYKXUaOlQr3vopxL8ZfEnA==",
"requires": {
"@babel/runtime": "^7.9.2",
"@types/testing-library__jest-dom": "^5.9.1",
@@ -1920,6 +1926,8 @@
},
"@testing-library/react": {
"version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.2.tgz",
+ "integrity": "sha512-jaxm0hwUjv+hzC+UFEywic7buDC9JQ1q3cDsrWVSDAPmLotfA6E6kUHlYm/zOeGCac6g48DR36tFHxl7Zb+N5A==",
"requires": {
"@babel/runtime": "^7.12.5",
"@testing-library/dom": "^7.28.1"
@@ -1927,6 +1935,8 @@
},
"@testing-library/user-event": {
"version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.6.0.tgz",
+ "integrity": "sha512-FNEH/HLmOk5GO70I52tKjs7WvGYckeE/SrnLX/ip7z2IGbffyd5zOUM1tZ10vsTphqm+VbDFI0oaXu0wcfQsAQ==",
"requires": {
"@babel/runtime": "^7.12.5"
}
@@ -11495,6 +11505,8 @@
},
"react": {
"version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz",
+ "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -11633,6 +11645,8 @@
},
"react-dom": {
"version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz",
+ "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -11673,6 +11687,8 @@
},
"react-router-dom": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz",
+ "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==",
"requires": {
"@babel/runtime": "^7.1.2",
"history": "^4.9.0",
@@ -11685,6 +11701,8 @@
},
"react-scripts": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.1.tgz",
+ "integrity": "sha512-NnniMSC/wjwhcJAyPJCWtxx6CWONqgvGgV9+QXj1bwoW/JI++YF1eEf3Upf/mQ9KmP57IBdjzWs1XvnPq7qMTQ==",
"requires": {
"@babel/core": "7.12.3",
"@pmmmwh/react-refresh-webpack-plugin": "0.4.2",
@@ -11747,6 +11765,15 @@
"workbox-webpack-plugin": "5.1.4"
}
},
+ "react-spring": {
+ "version": "8.0.27",
+ "resolved": "https://registry.npmjs.org/react-spring/-/react-spring-8.0.27.tgz",
+ "integrity": "sha512-nDpWBe3ZVezukNRandTeLSPcwwTMjNVu1IDq9qA/AMiUqHuRN4BeSWvKr3eIxxg1vtiYiOLy4FqdfCP5IoP77g==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "prop-types": "^15.5.8"
+ }
+ },
"react-transition-group": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
@@ -14660,7 +14687,9 @@
}
},
"web-vitals": {
- "version": "0.2.4"
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz",
+ "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg=="
},
"webidl-conversions": {
"version": "6.1.0",
diff --git a/package.json b/package.json
index 07b5408..078595c 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"react-dom": "^17.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.1",
+ "react-spring": "^8.0.27",
"web-vitals": "^0.2.4"
},
"scripts": {
diff --git a/public/index.html b/public/index.html
index 7a6b08c..5b72b31 100644
--- a/public/index.html
+++ b/public/index.html
@@ -19,17 +19,15 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
-
+
+
DAD
-
-
-
+
+
diff --git a/src/layouts/main/Main.jsx b/src/layouts/main/Main.jsx
index 1e32930..94e556f 100644
--- a/src/layouts/main/Main.jsx
+++ b/src/layouts/main/Main.jsx
@@ -9,6 +9,7 @@ const useStyles = makeStyles((theme) => ({
minHeight: 'calc(100vh-128px)',
paddingTop: '2rem',
paddingBottom: '2rem',
+ // flex: 1,
fallbacks: [
{ minHeight: '-moz-calc(100% - 128px)' },
{ minHeight: '-webkit-calc(100% - 128px)' },
@@ -22,13 +23,19 @@ const Main = (props) => {
const classes = useStyles();
return (
-
-
- {children}
-
-
+ <>
+
+
+ {children}
+
+
+ >
);
};
diff --git a/src/layouts/main/components/footer/Footer.jsx b/src/layouts/main/components/footer/Footer.jsx
index f45113d..19f0c2e 100644
--- a/src/layouts/main/components/footer/Footer.jsx
+++ b/src/layouts/main/components/footer/Footer.jsx
@@ -1,7 +1,23 @@
import React from 'react';
+import { AppBar, Toolbar, Grid, Typography } from '@material-ui/core';
const Footer = () => {
- return Footer
;
+ return (
+
+
+
+ Dan Dobos © 2021 Build with passion
+
+
+
+ );
};
export default Footer;
diff --git a/src/layouts/main/components/header/Header.jsx b/src/layouts/main/components/header/Header.jsx
index d420553..949a932 100644
--- a/src/layouts/main/components/header/Header.jsx
+++ b/src/layouts/main/components/header/Header.jsx
@@ -7,7 +7,7 @@ import Navigation from './navigation';
const useStyles = makeStyles((theme) => ({
appBar: {
- // position: 'relative',
+ position: 'relative',
zIndex: 1301,
},
}));
diff --git a/src/layouts/main/components/header/navigation/Navigation.jsx b/src/layouts/main/components/header/navigation/Navigation.jsx
index 3dd5091..3c062d7 100644
--- a/src/layouts/main/components/header/navigation/Navigation.jsx
+++ b/src/layouts/main/components/header/navigation/Navigation.jsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, createRef } from 'react';
+import React, { useState, useEffect, createRef, useMemo, useRef } from 'react';
import { Link } from 'react-router-dom';
import {
Container,
@@ -8,6 +8,9 @@ import {
useMediaQuery,
IconButton,
SwipeableDrawer,
+ ListItem,
+ ListItemText,
+ List,
} from '@material-ui/core';
import MenuIcon from '@material-ui/icons/Menu';
import MenuOpenIcon from '@material-ui/icons/MenuOpen';
@@ -24,16 +27,32 @@ const useStyles = makeStyles((theme) => ({
drawerIcon: {
height: '40px',
width: '40px',
- color: 'white',
+ color: theme.palette.secondary.main,
},
- drawer: { minWidth: '50vw' },
- tab: {
+ drawer: {
+ minWidth: '60vw',
+ backgroundColor: theme.palette.secondary.main,
+ },
+ listitems: {
+ padding: '1.5rem 2rem ',
+ color: theme.palette.primary.main,
+ width: '100%',
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.secondary.main,
+ },
+ },
+ listText: {
alignItems: 'flex-start',
- fontSize: '2rem',
+ fontSize: '1.5rem',
textTransform: 'capitalize',
-
},
- right: {},
+ selected: {
+ '&.Mui-selected': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.secondary.main,
+ },
+ },
}));
const Navigation = (props) => {
@@ -42,12 +61,14 @@ const Navigation = (props) => {
const matches = useMediaQuery(theme.breakpoints.down('sm'));
const iOS = process.browser && /iPad|iPhone|iPod/.test(navigator.userAgent);
- const [value, setValue] = useState(0);
+ const [value, setValue] = useState(1);
const [openDrawer, setOpenDrawer] = useState(false);
+ const tabsActions = useRef(null);
+
+
const handleTabsChange = (e, newValue) => {
setValue(newValue);
- setOpenDrawer(false);
};
const open = () => {
@@ -58,6 +79,56 @@ const Navigation = (props) => {
};
const wrapper = createRef();
+ const routes = useMemo(
+ () => [
+ {
+ name: 'Home',
+ link: '/',
+ activeIndex: 0,
+ },
+ {
+ name: 'Projects',
+ link: '/projects',
+ activeIndex: 1,
+ },
+ {
+ name: 'Games',
+ link: '/games',
+ activeIndex: 2,
+ },
+ {
+ name: 'Snippets',
+ link: '/snippets',
+ activeIndex: 3,
+ },
+ {
+ name: 'About',
+ link: '/about',
+ activeIndex: 4,
+ },
+ ],
+ []
+ );
+
+ useEffect(() => {
+ routes.forEach((route) => {
+ switch (window.location.pathname) {
+ case `${route.link}`:
+ if (value !== route.activeIndex) {
+ setValue(route.activeIndex);
+ }
+ break;
+ default:
+ return false;
+ }
+ });
+ }, [value, routes]);
+ useEffect(() => {
+ setTimeout(() => {
+ tabsActions.current?.updateIndicator();
+ }, 100);
+ });
+
return (
@@ -84,52 +155,46 @@ const Navigation = (props) => {
classes={{ paper: classes.drawer }}
>
-
-
-
-
-
-
-
+
+
+ {routes.map((route) => (
+ {
+ setValue(route.activeIndex);
+ setOpenDrawer(false);
+ }}
+ >
+
+ {route.name}
+
+
+ ))}
+
) : (
-
-
-
-
-
-
+
+ {routes.map((route) => (
+
+ ))}
)}
diff --git a/src/layouts/white/White.jsx b/src/layouts/white/White.jsx
new file mode 100644
index 0000000..5b53cb0
--- /dev/null
+++ b/src/layouts/white/White.jsx
@@ -0,0 +1,52 @@
+import React from 'react';
+import { Container } from '@material-ui/core';
+import {
+ ThemeProvider,
+ createMuiTheme,
+ makeStyles,
+ responsiveFontSizes,
+} from '@material-ui/core/styles';
+
+import Footer from './components/footer';
+import Header from './components/header';
+
+const useStyles = makeStyles((theme) => ({
+ container: {
+ minHeight: '100vh',
+ paddingTop: '2rem',
+ paddingBottom: '2rem',
+ fallbacks: [
+ { minHeight: '-moz-calc(100% - 128px)' },
+ { minHeight: '-webkit-calc(100% - 128px)' },
+ { minHeight: '-o-calc(100% - 128px)' },
+ ],
+ },
+}));
+
+let theme = createMuiTheme({
+ typography: {
+ fontFamily: 'Yeon Sung',
+ transform: 'matrix(1, 0, 0, 1, 0, 0)',
+ // h1: {
+ // // marginLeft: '-.5rem',
+ // paddingLeft: 0,
+ // },
+ },
+});
+theme = responsiveFontSizes(theme);
+
+const White = (props) => {
+ const { children } = props;
+ const classes = useStyles();
+
+ return (
+
+
+
+ {children}
+
+
+ );
+};
+
+export default White;
diff --git a/src/layouts/white/components/footer/Footer.jsx b/src/layouts/white/components/footer/Footer.jsx
new file mode 100644
index 0000000..6616236
--- /dev/null
+++ b/src/layouts/white/components/footer/Footer.jsx
@@ -0,0 +1,58 @@
+import React from 'react';
+
+import { makeStyles } from '@material-ui/core/styles';
+import useScrollTrigger from '@material-ui/core/useScrollTrigger';
+import KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';
+import { Grid, Zoom } from '@material-ui/core';
+
+const useStyles = makeStyles((theme) => ({
+ icon: {
+ width: '5rem',
+ height: '5rem',
+ },
+}));
+
+function ScrollTop(props) {
+ const { children, window } = props;
+
+ const trigger = useScrollTrigger({
+ target: document.querySelector('#footer') ? window : undefined,
+ });
+
+ const handleClick = (event) => {
+ const anchor = (event.target.ownerDocument || document).querySelector(
+ '#back-to-top-anchor'
+ );
+
+ if (anchor) {
+ anchor.scrollIntoView({ behavior: 'smooth', block: 'center' });
+ }
+ };
+
+ return (
+
+
+ {children}
+
+
+ );
+}
+
+const Footer = (props) => {
+ const classes = useStyles();
+ return (
+
+ );
+};
+export default Footer;
diff --git a/src/layouts/white/components/footer/index.js b/src/layouts/white/components/footer/index.js
new file mode 100644
index 0000000..be92134
--- /dev/null
+++ b/src/layouts/white/components/footer/index.js
@@ -0,0 +1 @@
+export { default } from './Footer';
diff --git a/src/layouts/white/components/header/Header.jsx b/src/layouts/white/components/header/Header.jsx
new file mode 100644
index 0000000..ea56c10
--- /dev/null
+++ b/src/layouts/white/components/header/Header.jsx
@@ -0,0 +1,74 @@
+import React from 'react';
+import {Link} from 'react-router-dom'
+import {
+ AppBar,
+ Toolbar,
+ CssBaseline,
+ Typography,
+ Breadcrumbs,
+ Link as MaterialLink,
+ Grid,
+} from '@material-ui/core';
+import CachedOutlinedIcon from '@material-ui/icons/CachedOutlined';
+
+import { makeStyles } from '@material-ui/styles';
+
+const useStyles = makeStyles((theme) => ({
+ appBar: {
+ position: 'fixed',
+ zIndex: 1301,
+ backgroundColor: '#FAFAFA',
+ },
+ name: {
+ textTransform: 'uppercase',
+ letterSpacing: '.5rem',
+ },
+}));
+function handleClick(event) {
+ event.preventDefault();
+ const anchor = (event.target.ownerDocument || document).querySelector(
+ '#footer'
+ );
+
+ if (anchor) {
+ anchor.scrollIntoView({ behavior: 'smooth', block: 'center' });
+ }
+}
+
+const Header = () => {
+ const classes = useStyles();
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Dan Dobos
+
+
+
+ About
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+export default Header;
diff --git a/src/layouts/white/components/header/hideOnScroll/HideOnScroll.jsx b/src/layouts/white/components/header/hideOnScroll/HideOnScroll.jsx
new file mode 100644
index 0000000..31ee0d0
--- /dev/null
+++ b/src/layouts/white/components/header/hideOnScroll/HideOnScroll.jsx
@@ -0,0 +1,15 @@
+import React from 'react';
+import { useScrollTrigger, Slide } from '@material-ui/core';
+
+
+const HideOnScroll = (props) => {
+ const { children, window } = props;
+ const trigger = useScrollTrigger({ target: window ? window() : undefined });
+
+ return (
+
+ {children}
+
+ );
+};
+export default HideOnScroll;
\ No newline at end of file
diff --git a/src/layouts/white/components/header/hideOnScroll/index.js b/src/layouts/white/components/header/hideOnScroll/index.js
new file mode 100644
index 0000000..02dfa8f
--- /dev/null
+++ b/src/layouts/white/components/header/hideOnScroll/index.js
@@ -0,0 +1 @@
+export { default } from './HideOnScroll.jsx';
diff --git a/src/layouts/white/components/header/index.js b/src/layouts/white/components/header/index.js
new file mode 100644
index 0000000..579f1ac
--- /dev/null
+++ b/src/layouts/white/components/header/index.js
@@ -0,0 +1 @@
+export { default } from './Header';
diff --git a/src/layouts/white/components/header/navigation/Navigation.jsx b/src/layouts/white/components/header/navigation/Navigation.jsx
new file mode 100644
index 0000000..3dd5091
--- /dev/null
+++ b/src/layouts/white/components/header/navigation/Navigation.jsx
@@ -0,0 +1,139 @@
+import React, { useState, useEffect, createRef } from 'react';
+import { Link } from 'react-router-dom';
+import {
+ Container,
+ Hidden,
+ Tabs,
+ Tab,
+ useMediaQuery,
+ IconButton,
+ SwipeableDrawer,
+} from '@material-ui/core';
+import MenuIcon from '@material-ui/icons/Menu';
+import MenuOpenIcon from '@material-ui/icons/MenuOpen';
+import { makeStyles, useTheme } from '@material-ui/styles';
+
+const useStyles = makeStyles((theme) => ({
+ toolbar: theme.mixins.toolbar,
+
+ drawerIconContainer: {
+ alignSelf: 'center',
+ '&:hover': { backgroundColor: 'transparent' },
+ [theme.breakpoints.down('md')]: { padding: 0 },
+ },
+ drawerIcon: {
+ height: '40px',
+ width: '40px',
+ color: 'white',
+ },
+ drawer: { minWidth: '50vw' },
+ tab: {
+ alignItems: 'flex-start',
+ fontSize: '2rem',
+ textTransform: 'capitalize',
+
+ },
+ right: {},
+}));
+
+const Navigation = (props) => {
+ const classes = useStyles();
+ const theme = useTheme();
+
+ const matches = useMediaQuery(theme.breakpoints.down('sm'));
+ const iOS = process.browser && /iPad|iPhone|iPod/.test(navigator.userAgent);
+ const [value, setValue] = useState(0);
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ const handleTabsChange = (e, newValue) => {
+ setValue(newValue);
+ setOpenDrawer(false);
+ };
+
+ const open = () => {
+ setOpenDrawer(true);
+ };
+ const close = () => {
+ setOpenDrawer(false);
+ };
+ const wrapper = createRef();
+
+ return (
+
+
+ setOpenDrawer(!openDrawer)}
+ disableRipple
+ className={classes.drawerIconContainer}
+ >
+ {openDrawer ? (
+
+ ) : (
+
+ )}
+
+
+
+ {matches ? (
+
+
+
+
+
+
+
+
+
+
+ ) : (
+
+
+
+
+
+
+
+
+
+ )}
+
+ );
+};
+export default Navigation;
diff --git a/src/layouts/white/components/header/navigation/index.js b/src/layouts/white/components/header/navigation/index.js
new file mode 100644
index 0000000..7bc6dc0
--- /dev/null
+++ b/src/layouts/white/components/header/navigation/index.js
@@ -0,0 +1 @@
+export { default } from './Navigation';
diff --git a/src/layouts/white/index.js b/src/layouts/white/index.js
new file mode 100644
index 0000000..11e3f48
--- /dev/null
+++ b/src/layouts/white/index.js
@@ -0,0 +1 @@
+export {default} from './White.jsx'
\ No newline at end of file
diff --git a/src/pages/about/About.jsx b/src/pages/about/About.jsx
index b64a771..020745f 100644
--- a/src/pages/about/About.jsx
+++ b/src/pages/about/About.jsx
@@ -1,7 +1,103 @@
import React from 'react';
+import { Container, Grid, Typography, Link } from '@material-ui/core';
+import { makeStyles } from '@material-ui/core/styles';
+const useStyles = makeStyles((theme) => ({
+ // root: {
+ // display: 'flex',
+ // flexDirection: 'column',
+ // justifyContent: 'flex-end',
+ // height: 'auto',
+ // },
+ container: {
+ marginTop: 'auto',
+ // height:'100vh'
+ display: 'flex',
+ // position: 'absolute',
+ },
+ name: {
+ textTransform: 'uppercase',
+ letterSpacing: '2rem',
+ },
+}));
const About = () => {
- return About ...in progress
;
+ const classes = useStyles();
+
+ return (
+
+
+
+
+
+
+ Software Developer
+
+
+
+
+ Dan Dobos
+
+
+
+
+ https://skilltransfers.com/
+
+
+
+
+
+ A passionate software developer with afinity for React and AWS.
+
+ Characterized by the desire of understanding and implementing
+ technological inovations.
+
+
+
+ {/* Contact */}
+
+
+ Contact
+
+
+ danandreidobos@gmail.com
+
+
+
+
+
+
+ );
};
export default About;
diff --git a/src/pages/games/Games.jsx b/src/pages/games/Games.jsx
index a1fd4df..2f13e90 100644
--- a/src/pages/games/Games.jsx
+++ b/src/pages/games/Games.jsx
@@ -1,7 +1,9 @@
import React from 'react';
const Games = () => {
- return Games ...in progress
;
+ return (
+ Games ...in progress
+ );
};
export default Games;
diff --git a/src/pages/home/Home.jsx b/src/pages/home/Home.jsx
index 25a3666..54b99cc 100644
--- a/src/pages/home/Home.jsx
+++ b/src/pages/home/Home.jsx
@@ -1,7 +1,27 @@
import React from 'react';
+import { Container, Grid, Typography, Link } from '@material-ui/core';
+import About from '../about';
+import Games from '../games';
+import Snippets from '../snippets';
+import Projects from '../projects';
const Home = () => {
- return Home ...in progress
;
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
};
export default Home;
diff --git a/src/pages/projects/Projects.jsx b/src/pages/projects/Projects.jsx
index 5153829..1ddaacf 100644
--- a/src/pages/projects/Projects.jsx
+++ b/src/pages/projects/Projects.jsx
@@ -2,7 +2,7 @@ import React from 'react'
const Projects = () => {
return (
-
+
Projects ...in progress
)
diff --git a/src/pages/snippets/Snippets.jsx b/src/pages/snippets/Snippets.jsx
index e1c784a..6eae827 100644
--- a/src/pages/snippets/Snippets.jsx
+++ b/src/pages/snippets/Snippets.jsx
@@ -1,7 +1,11 @@
import React from 'react';
const Snippets = () => {
- return
Snippets ...in progress
;
+ return (
+
+ Snippets ...in progress
+
+ );
};
export default Snippets;
diff --git a/src/routes/Routes.js b/src/routes/Routes.js
index 4d28ea6..c365236 100644
--- a/src/routes/Routes.js
+++ b/src/routes/Routes.js
@@ -4,6 +4,7 @@ import CircularProgress from '@material-ui/core/CircularProgress';
import ErrorBoundary from './components/errorBoundary';
import CustomRoute from './components/customRoute';
import Main from '../layouts/main';
+import White from '../layouts/white';
// const Main = lazy(() => import('layouts/main'));
@@ -19,7 +20,7 @@ const CustomRoutes = () => {
}>
-
+