From d29cbaed124c8294771ba28fec738a01cf5c473c Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Wed, 6 Apr 2022 09:19:03 -0700 Subject: [PATCH] Started fleshing out UI... Signed-off-by: James Ketrenos --- client/build/favicon.ico | Bin 3870 -> 24838 bytes client/package-lock.json | 126 ++++++++++++++++++++++++++++++++++++- client/package.json | 3 +- client/public/favicon.ico | Bin 3870 -> 24838 bytes client/public/logo192.png | Bin 5347 -> 4523 bytes client/public/logo512.png | Bin 9664 -> 6247 bytes client/src/App.css | 8 +++ client/src/App.js | 31 ++++++++- client/src/GoodTimesBar.js | 97 +++++++++++++++++++--------- client/src/index.js | 7 ++- 10 files changed, 235 insertions(+), 37 deletions(-) diff --git a/client/build/favicon.ico b/client/build/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..9c9941f55062b10a6f4bb3d43a3384ba21260e01 100644 GIT binary patch literal 24838 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/client/package-lock.json b/client/package-lock.json index b6b7e9f..2ea93ec 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -25,10 +25,11 @@ "moment-timezone": "^0.5.34", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-gravatar": "^2.6.3", "react-moment": "^1.1.1", "react-movable": "^3.0.4", "react-moveable": "^0.31.1", - "react-router-dom": "^6.2.1", + "react-router-dom": "^6.3.0", "react-scripts": "5.0.0", "socket.io-client": "^4.4.1", "typeface-roboto": "^1.1.13", @@ -5737,6 +5738,14 @@ "node": ">=6" } }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "engines": { + "node": "*" + } + }, "node_modules/check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", @@ -6113,6 +6122,14 @@ "node": ">= 8" } }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "engines": { + "node": "*" + } + }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -9147,6 +9164,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "node_modules/is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -9322,6 +9344,11 @@ "node": ">=0.10.0" } }, + "node_modules/is-retina": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz", + "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M=" + }, "node_modules/is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -11714,6 +11741,16 @@ "tmpl": "1.0.5" } }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -13832,6 +13869,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -14091,6 +14140,19 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" }, + "node_modules/react-gravatar": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-gravatar/-/react-gravatar-2.6.3.tgz", + "integrity": "sha1-VAfrash+gw4qNN63YNKkxATrHaw=", + "dependencies": { + "is-retina": "^1.0.3", + "md5": "^2.1.0", + "query-string": "^4.2.2" + }, + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -15152,6 +15214,14 @@ "node": ">= 0.6" } }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -21046,6 +21116,11 @@ "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, "check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", @@ -21335,6 +21410,11 @@ "which": "^2.0.1" } }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -23534,6 +23614,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -23640,6 +23725,11 @@ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" }, + "is-retina": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz", + "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M=" + }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -25402,6 +25492,16 @@ "tmpl": "1.0.5" } }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -26795,6 +26895,15 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -26984,6 +27093,16 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" }, + "react-gravatar": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-gravatar/-/react-gravatar-2.6.3.tgz", + "integrity": "sha1-VAfrash+gw4qNN63YNKkxATrHaw=", + "requires": { + "is-retina": "^1.0.3", + "md5": "^2.1.0", + "query-string": "^4.2.2" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -27783,6 +27902,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", diff --git a/client/package.json b/client/package.json index eeb6c72..0e4c889 100644 --- a/client/package.json +++ b/client/package.json @@ -21,10 +21,11 @@ "moment-timezone": "^0.5.34", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-gravatar": "^2.6.3", "react-moment": "^1.1.1", "react-movable": "^3.0.4", "react-moveable": "^0.31.1", - "react-router-dom": "^6.2.1", + "react-router-dom": "^6.3.0", "react-scripts": "5.0.0", "socket.io-client": "^4.4.1", "typeface-roboto": "^1.1.13", diff --git a/client/public/favicon.ico b/client/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..9c9941f55062b10a6f4bb3d43a3384ba21260e01 100644 GIT binary patch literal 24838 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/client/public/logo192.png b/client/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..dec0696086aeacb5d6ea51d2c3918230f5b8f8d3 100644 GIT binary patch delta 4397 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 delta 5229 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 diff --git a/client/public/logo512.png b/client/public/logo512.png index a4e47a6545bc15971f8f63fba70e4013df88a664..941a26744b0bd133f6e2dca1d844e0d02158037f 100644 GIT binary patch literal 6247 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 R;jbQ`aqgmOzKUh={{VWZjsE}u delta 9595 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 diff --git a/client/src/App.css b/client/src/App.css index 74b5e05..984d104 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -36,3 +36,11 @@ transform: rotate(360deg); } } + +.App .Content > .MuiPaper-root { + display: flex; + margin-top: 1rem; + padding: 0.5rem; + justify-content: stretch; + align-self: stretch; +} \ No newline at end of file diff --git a/client/src/App.js b/client/src/App.js index b1a247a..550f606 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -1,13 +1,40 @@ import logo from './logo.svg'; +import React, { useState } from "react"; +import { + BrowserRouter, + Routes, + Route, +} from "react-router-dom"; + import './App.css'; import './fonts/index.css'; import { GoodTimesBar } from "./GoodTimesBar.js"; +import { GlobalContext } from "./GlobalContext.js"; +import Container from '@mui/material/Container'; +import Paper from '@mui/material/Paper'; +import SignIn from "./SignIn.js"; +import SignUp from "./SignUp.js"; function App() { + const [ user, setUser ] = useState(null); + return (
- -
Coming soon...
+ + + + + }/> + }/> + Not implemented... yet. + }/> + Coming soon... + }/> + + +
); } diff --git a/client/src/GoodTimesBar.js b/client/src/GoodTimesBar.js index f1b2170..5d8497e 100644 --- a/client/src/GoodTimesBar.js +++ b/client/src/GoodTimesBar.js @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React, { useContext, useEffect, useState } from 'react'; import AppBar from '@mui/material/AppBar'; import Box from '@mui/material/Box'; import Toolbar from '@mui/material/Toolbar'; @@ -7,14 +7,43 @@ import Typography from '@mui/material/Typography'; import Menu from '@mui/material/Menu'; import MenuIcon from '@mui/icons-material/Menu'; import Container from '@mui/material/Container'; -import Avatar from '@mui/material/Avatar'; import Button from '@mui/material/Button'; import Tooltip from '@mui/material/Tooltip'; import MenuItem from '@mui/material/MenuItem'; +import { Link } from 'react-router-dom'; +import { + useParams, + useNavigate, + useLocation, +} from "react-router-dom"; -const settings = ['Profile', 'Account', 'Dashboard', 'Logout']; +import Gravatar from 'react-gravatar' + +import { GlobalContext } from "./GlobalContext.js"; const GoodTimesBar = () => { + const { user } = useContext(GlobalContext); + const [ settings, setSettings ] = useState([]); + const navigate = useNavigate(); + + useEffect(() => { + if (user) { + setSettings(['Profile', 'Account', 'Dashboard', 'Logout'] + .map((setting) => ( + + {setting} + + ))); + } else { + setSettings(['Login'] + .map((setting) => ( + + {setting} + + ))); + } + }, [user, setSettings]); + const [anchorElNav, setAnchorElNav] = React.useState(null); const [anchorElUser, setAnchorElUser] = React.useState(null); @@ -83,39 +112,45 @@ const GoodTimesBar = () => { component="div" sx={{ flexGrow: 1, display: { xs: 'flex', md: 'none' } }} > - LOGO + GOODTIMES - - - - - - - {settings.map((setting) => ( - - {setting} - - ))} - + { !user && <> + + + + + } + { user && <> + + + + + + + {settings} + + } diff --git a/client/src/index.js b/client/src/index.js index ef2edf8..e091bac 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -3,15 +3,18 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; +import { BrowserRouter } from "react-router-dom"; ReactDOM.render( + - , + + , document.getElementById('root') ); // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); +reportWebVitals(console.log);