From fa8cd2fa7cb21b1ec777434ff9394204a12cf92f Mon Sep 17 00:00:00 2001 From: Nuwan Chathuranga Date: Mon, 9 Aug 2021 20:06:16 +0530 Subject: [PATCH] Initial changes to falcon package * include changes to the templates to match new ui design. * musician listing and filtering (initial phase) * showing current logged in user in header --- jam-ui/package-lock.json | 185 ++++++++--- jam-ui/package.json | 5 +- jam-ui/public/index.html | 2 +- jam-ui/src/App.js | 3 +- jam-ui/src/Main.js | 9 +- jam-ui/src/assets/img/icons/question_icon.svg | 8 + jam-ui/src/assets/img/logos/JK_Logo_2c.png | Bin 0 -> 4447 bytes .../assets/img/logos/JK_Logo_blue-2021.png | Bin 0 -> 4337 bytes jam-ui/src/assets/scss/_user.scss | 2 + jam-ui/src/assets/scss/custom/user.css | 66 ++++ jam-ui/src/components/auth/LoginForm.js | 23 +- jam-ui/src/components/auth/LogoutContent.js | 15 +- .../components/auth/basic/AuthBasicRoutes.js | 20 +- jam-ui/src/components/auth/basic/Start.js | 28 ++ jam-ui/src/components/common/JKTooltip.js | 25 ++ jam-ui/src/components/dashboard/Dashboard.js | 2 + .../src/components/dashboard/JkDashboard.js | 10 + .../components/navbar/JKCurrentUserAvatar.js | 16 + .../components/navbar/JKNavbarTopProfile.js | 55 ++++ jam-ui/src/components/navbar/Logo.js | 10 +- jam-ui/src/components/navbar/NavbarTop.js | 4 +- .../src/components/navbar/NavbarVertical.js | 6 +- .../src/components/navbar/ProfileDropdown.js | 33 +- .../navbar/TopNavRightSideNavItem.js | 39 ++- jam-ui/src/components/page/JKPeople.js | 99 ++++++ jam-ui/src/components/page/JKPeopleList.js | 35 ++ jam-ui/src/components/page/JKPeopleSearch.js | 289 +++++++++++++++++ jam-ui/src/components/page/JKPerson.js | 120 +++++++ .../src/components/profile/JKProfileAvatar.js | 15 + .../src/components/profile/JKProfileGenres.js | 18 ++ .../profile/JKProfileInstrumentsList.js | 24 ++ .../components/profile/JKProfileInterests.js | 167 ++++++++++ .../profile/JKProfileOnlinePresence.js | 57 ++++ .../profile/JKProfilePerformanceSamples.js | 37 +++ .../components/profile/JKProfileSidePanel.js | 140 ++++++++ jam-ui/src/config.js | 2 +- jam-ui/src/context/AuthContext.js | 16 + jam-ui/src/helpers/apiFetch.js | 62 ++++ jam-ui/src/helpers/protectedRoute.js | 17 + jam-ui/src/helpers/rest.js | 53 +++ jam-ui/src/helpers/utils.js | 10 + jam-ui/src/index.js | 6 +- jam-ui/src/layouts/DashboardLayout.js | 29 +- jam-ui/src/layouts/DashboardRoutes.js | 306 +++++++++--------- jam-ui/src/layouts/Layout.js | 64 ++-- jam-ui/src/routes.js | 61 +++- 46 files changed, 1907 insertions(+), 286 deletions(-) create mode 100644 jam-ui/src/assets/img/icons/question_icon.svg create mode 100644 jam-ui/src/assets/img/logos/JK_Logo_2c.png create mode 100644 jam-ui/src/assets/img/logos/JK_Logo_blue-2021.png create mode 100644 jam-ui/src/assets/scss/custom/user.css create mode 100644 jam-ui/src/components/auth/basic/Start.js create mode 100644 jam-ui/src/components/common/JKTooltip.js create mode 100644 jam-ui/src/components/dashboard/JkDashboard.js create mode 100644 jam-ui/src/components/navbar/JKCurrentUserAvatar.js create mode 100644 jam-ui/src/components/navbar/JKNavbarTopProfile.js create mode 100644 jam-ui/src/components/page/JKPeople.js create mode 100644 jam-ui/src/components/page/JKPeopleList.js create mode 100644 jam-ui/src/components/page/JKPeopleSearch.js create mode 100644 jam-ui/src/components/page/JKPerson.js create mode 100644 jam-ui/src/components/profile/JKProfileAvatar.js create mode 100644 jam-ui/src/components/profile/JKProfileGenres.js create mode 100644 jam-ui/src/components/profile/JKProfileInstrumentsList.js create mode 100644 jam-ui/src/components/profile/JKProfileInterests.js create mode 100644 jam-ui/src/components/profile/JKProfileOnlinePresence.js create mode 100644 jam-ui/src/components/profile/JKProfilePerformanceSamples.js create mode 100644 jam-ui/src/components/profile/JKProfileSidePanel.js create mode 100644 jam-ui/src/context/AuthContext.js create mode 100644 jam-ui/src/helpers/apiFetch.js create mode 100644 jam-ui/src/helpers/protectedRoute.js create mode 100644 jam-ui/src/helpers/rest.js diff --git a/jam-ui/package-lock.json b/jam-ui/package-lock.json index 77c271e73..3eb2365d2 100644 --- a/jam-ui/package-lock.json +++ b/jam-ui/package-lock.json @@ -1882,6 +1882,11 @@ "@babel/types": "^7.3.0" } }, + "@types/cookie": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz", + "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==" + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -5831,9 +5836,9 @@ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "requires": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" @@ -5920,11 +5925,18 @@ } }, "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", "requires": { - "domelementtype": "1" + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + } } }, "domutils": { @@ -6168,9 +6180,9 @@ } }, "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true } } @@ -6210,9 +6222,9 @@ "dev": true }, "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true } } @@ -9033,22 +9045,40 @@ } }, "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" }, "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } } } }, @@ -13031,9 +13061,9 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -14357,6 +14387,16 @@ "prop-types": "^15.7.2" } }, + "react-cookie": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/react-cookie/-/react-cookie-4.0.3.tgz", + "integrity": "sha512-cmi6IpdVgTSvjqssqIEvo779Gfqc4uPGHRrKMEdHcqkmGtPmxolGfsyKj95bhdLEKqMdbX8MLBCwezlnhkHK0g==", + "requires": { + "@types/hoist-non-react-statics": "^3.0.1", + "hoist-non-react-statics": "^3.0.0", + "universal-cookie": "^4.0.0" + } + }, "react-countup": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-4.3.3.tgz", @@ -14655,9 +14695,9 @@ } }, "react-hook-form": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-4.10.2.tgz", - "integrity": "sha512-Ule/KqHBwUvuubqGC4WDvOARS6VjlULSS+WHspgQ5FhFKR4ytHDc4AMpjVfnv+Wbz2TEbMp9/ZHmuZsUksPCiA==" + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.11.1.tgz", + "integrity": "sha512-lBt428oU03dNUF5qZy5xqEdANaH3L/ilKWQS2t8wD6zF7FypOv46kEkZmg+oHf3n2xgeGYJgbMIGtYExsfKJ8A==" }, "react-image-lightbox": { "version": "5.1.1", @@ -15405,15 +15445,15 @@ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "requires": { - "css-select": "^2.0.2", - "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -15421,6 +15461,56 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "requires": { + "boolbase": "^1.0.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -16724,9 +16814,9 @@ } }, "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", + "integrity": "sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==", "requires": { "figgy-pudding": "^3.5.1", "minipass": "^3.1.1" @@ -17916,6 +18006,15 @@ "through2-filter": "^3.0.0" } }, + "universal-cookie": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz", + "integrity": "sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==", + "requires": { + "@types/cookie": "^0.3.3", + "cookie": "^0.4.0" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", diff --git a/jam-ui/package.json b/jam-ui/package.json index 7dfec9472..3bd863d50 100644 --- a/jam-ui/package.json +++ b/jam-ui/package.json @@ -43,13 +43,14 @@ "react-bootstrap-table-next": "^3.3.5", "react-bootstrap-table2-paginator": "^2.1.2", "react-chartjs-2": "^2.10.0", + "react-cookie": "^4.0.3", "react-countup": "^4.3.3", "react-datetime": "^2.16.3", "react-dom": "^16.13.1", "react-dropzone": "^10.2.2", "react-es6-progressbar.js": "^1.1.0", "react-flatpickr": "^3.10.6", - "react-hook-form": "^4.10.2", + "react-hook-form": "^7.11.1", "react-image-lightbox": "^5.1.1", "react-image-video-lightbox": "^2.0.1", "react-leaflet": "^2.7.0", @@ -72,7 +73,7 @@ "uuid": "^3.4.0" }, "scripts": { - "start": "react-scripts start", + "start": "HOST=beta.jamkazam.local react-scripts start", "build": "react-scripts build", "eject": "react-scripts eject", "scss": "gulp", diff --git a/jam-ui/public/index.html b/jam-ui/public/index.html index 2b4255c89..d4c079ee6 100644 --- a/jam-ui/public/index.html +++ b/jam-ui/public/index.html @@ -12,7 +12,7 @@ href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Poppins:100,200,300,400,500,600,700,800,900&display=swap" /> - Falcon React | ReactJS Dashboard & WebApp Template + JamKazam diff --git a/jam-ui/src/App.js b/jam-ui/src/App.js index 96fca6da8..74c430962 100644 --- a/jam-ui/src/App.js +++ b/jam-ui/src/App.js @@ -7,7 +7,8 @@ import 'react-datetime/css/react-datetime.css'; import 'react-image-lightbox/style.css'; const App = () => { - return ( + + return ( diff --git a/jam-ui/src/Main.js b/jam-ui/src/Main.js index 0fc8c7e55..7e8e06792 100644 --- a/jam-ui/src/Main.js +++ b/jam-ui/src/Main.js @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import AppContext from './context/Context'; +import { AuthProvider } from "./context/AuthContext"; import { settings } from './config'; import toggleStylesheet from './helpers/toggleStylesheet'; import { getItemFromStore, setItemToStore, themeColors } from './helpers/utils'; @@ -18,7 +19,7 @@ const Main = props => { const [currency, setCurrency] = useState(settings.currency); const [showBurgerMenu, setShowBurgerMenu] = useState(settings.showBurgerMenu); const [isLoaded, setIsLoaded] = useState(false); - const [isOpenSidePanel, setIsOpenSidePanel] = useState(false); + const [isOpenSidePanel, setIsOpenSidePanel] = useState(true); const [navbarCollapsed, setNavbarCollapsed] = useState(false); const [navbarStyle, setNavbarStyle] = useState(getItemFromStore('navbarStyle', settings.navbarStyle)); @@ -114,7 +115,11 @@ const Main = props => { ); } - return {props.children}; + return + + {props.children} + + ; }; Main.propTypes = { children: PropTypes.node }; diff --git a/jam-ui/src/assets/img/icons/question_icon.svg b/jam-ui/src/assets/img/icons/question_icon.svg new file mode 100644 index 000000000..238eebefe --- /dev/null +++ b/jam-ui/src/assets/img/icons/question_icon.svg @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/jam-ui/src/assets/img/logos/JK_Logo_2c.png b/jam-ui/src/assets/img/logos/JK_Logo_2c.png new file mode 100644 index 0000000000000000000000000000000000000000..a35daa14b682daf564c2288c48e190c0f3e3fa37 GIT binary patch literal 4447 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 literal 0 HcmV?d00001 diff --git a/jam-ui/src/assets/img/logos/JK_Logo_blue-2021.png b/jam-ui/src/assets/img/logos/JK_Logo_blue-2021.png new file mode 100644 index 0000000000000000000000000000000000000000..d30e220cfe31c3b0c8c167fe4725c6a6e2645f42 GIT binary patch literal 4337 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 f0B{KSzW@UOb0uDo3r { // State @@ -14,11 +16,24 @@ const LoginForm = ({ setRedirect, hasLabel, layout }) => { const [remember, setRemember] = useState(true); const [isDisabled, setIsDisabled] = useState(true); + const history = useHistory(); + const { setCurrentUser} = useAuth(); + // Handler - const handleSubmit = e => { + const handleSubmit = async e => { e.preventDefault(); - toast.success(`Logged in as ${email}`); - setRedirect(true); + const credentials = {email, password} + const user = await signin(credentials) + console.log("handleSubmit", user); + if(user){ + setCurrentUser(user) + localStorage.setItem('user', user) + toast.success(`Signed in as ${email}`); + setRedirect(true); + }else{ + toast.error("Incorrect email or password"); + } + }; useEffect(() => { diff --git a/jam-ui/src/components/auth/LogoutContent.js b/jam-ui/src/components/auth/LogoutContent.js index b679bc70c..b277c4cd7 100644 --- a/jam-ui/src/components/auth/LogoutContent.js +++ b/jam-ui/src/components/auth/LogoutContent.js @@ -1,20 +1,29 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { Button } from 'reactstrap'; -import { Link } from 'react-router-dom'; +//import { Link } from 'react-router-dom'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import rocket from '../../assets/img/illustrations/rocket.png'; const LogoutContent = ({ layout, titleTag: TitleTag }) => { + const goToLogin = () => { + window.location.href = `${process.env.REACT_APP_LEGACY_BASE_URL}/signin` + } return ( shield See you again!

- Thanks for using Falcon. You are
+ Thanks for using JamKazam. You are
now successfully signed out. + {process.env.REACT_APP_LEGACY_BASE_URL}

- */} + + diff --git a/jam-ui/src/components/auth/basic/AuthBasicRoutes.js b/jam-ui/src/components/auth/basic/AuthBasicRoutes.js index a6ac557f6..b1459c937 100644 --- a/jam-ui/src/components/auth/basic/AuthBasicRoutes.js +++ b/jam-ui/src/components/auth/basic/AuthBasicRoutes.js @@ -1,23 +1,25 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Redirect, Route, Switch, withRouter } from 'react-router-dom'; -import Login from './Login'; +//import Login from './Login'; +import Start from './Start'; import Logout from './Logout'; -import Registration from './Registration'; -import ForgetPassword from './ForgetPassword'; -import PasswordReset from './PasswordReset'; -import ConfirmMail from './ConfirmMail'; -import LockScreen from './LockScreen'; +// import Registration from './Registration'; +// import ForgetPassword from './ForgetPassword'; +// import PasswordReset from './PasswordReset'; +// import ConfirmMail from './ConfirmMail'; +// import LockScreen from './LockScreen'; const AuthBasicRoutes = ({ match: { url } }) => ( - + {/* */} + - + {/* - + */} {/*Redirect*/} diff --git a/jam-ui/src/components/auth/basic/Start.js b/jam-ui/src/components/auth/basic/Start.js new file mode 100644 index 000000000..22418a2b2 --- /dev/null +++ b/jam-ui/src/components/auth/basic/Start.js @@ -0,0 +1,28 @@ +import React from 'react'; +import { Row, Col, Button } from "reactstrap"; +import { Fragment } from 'react'; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +const Start = () => { + const goToLogin = () => { + window.open(`${process.env.REACT_APP_LEGACY_BASE_URL}/signin`, '_blank') + } + return( + + + +
Start
+ + +

To begin please login to your JamKazam account and reload this page

+ + +
+
+ ) +} + +export default Start; \ No newline at end of file diff --git a/jam-ui/src/components/common/JKTooltip.js b/jam-ui/src/components/common/JKTooltip.js new file mode 100644 index 000000000..72c533388 --- /dev/null +++ b/jam-ui/src/components/common/JKTooltip.js @@ -0,0 +1,25 @@ +import React, { useState, useRef } from 'react'; +import { Tooltip } from 'reactstrap'; + +const JKTooltip = props => { + const [tooltipOpen, setTooltipOpen] = useState(false); + const iconRef = useRef(); + const toggle = () => setTooltipOpen(!tooltipOpen); + + return ( + + + + {props.title} + + + ); +}; + +export default JKTooltip; diff --git a/jam-ui/src/components/dashboard/Dashboard.js b/jam-ui/src/components/dashboard/Dashboard.js index 8737675e1..6cc4001ef 100644 --- a/jam-ui/src/components/dashboard/Dashboard.js +++ b/jam-ui/src/components/dashboard/Dashboard.js @@ -13,10 +13,12 @@ import DashBoardDepositStatus from './DashboardDepositStatus'; const PurchasesTable = loadable(() => import('./PurchasesTable')); const ActiveUsersMap = loadable(() => import('./ActiveUsersMap')); + const Dashboard = () => { // State const [isSelected, setIsSelected] = useState(false); + useEffect(() => { toast( diff --git a/jam-ui/src/components/dashboard/JkDashboard.js b/jam-ui/src/components/dashboard/JkDashboard.js new file mode 100644 index 000000000..fa0adb4b2 --- /dev/null +++ b/jam-ui/src/components/dashboard/JkDashboard.js @@ -0,0 +1,10 @@ +import React from "react"; + +const JKDashboard = () => { + + return( +

Dashboard

+ ) +} + +export default JKDashboard; \ No newline at end of file diff --git a/jam-ui/src/components/navbar/JKCurrentUserAvatar.js b/jam-ui/src/components/navbar/JKCurrentUserAvatar.js new file mode 100644 index 000000000..6e536c1f4 --- /dev/null +++ b/jam-ui/src/components/navbar/JKCurrentUserAvatar.js @@ -0,0 +1,16 @@ +import React, {useEffect} from "react"; +import { useAuth } from '../../context/AuthContext'; +import avatar from "../../assets/img/team/avatar.png"; + +const JKCurrentUserAvatar = () => { + const { currentUser } = useAuth(); + + if(currentUser && currentUser.photo_url) { + return ( ); + }else { + return ( ); + } + +} + +export default JKCurrentUserAvatar; \ No newline at end of file diff --git a/jam-ui/src/components/navbar/JKNavbarTopProfile.js b/jam-ui/src/components/navbar/JKNavbarTopProfile.js new file mode 100644 index 000000000..683eeb4f0 --- /dev/null +++ b/jam-ui/src/components/navbar/JKNavbarTopProfile.js @@ -0,0 +1,55 @@ +import React, { useEffect, useState } from 'react'; +import { useAuth } from '../../context/AuthContext'; +import { getCurrentUser } from '../../helpers/rest'; +import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap'; +import { Link } from 'react-router-dom'; +import JKCurrentUserAvatar from './JKCurrentUserAvatar' + +const JKNavbarTopCurrentUser = () => { + const { currentUser, setCurrentUser } = useAuth(); + const [dropdownOpen, setDropdownOpen] = useState(false); + + const toggle = () => setDropdownOpen(prevState => !prevState); + + const fetchCurrentUser = () => { + getCurrentUser() + .then(resp => { + if (resp.ok) { + return resp.json(); + } + }) + .then(data => { + console.log('CURRENT_USER', data); + setCurrentUser(data); + }) + .catch(error => console.log(error)); + }; + + const handleLogout = () => {}; + + useEffect(() => { + fetchCurrentUser(); + }, []); + + return ( +
+ {currentUser && + + + + {currentUser.name} + + + + My Profile + + Logout + + + } + +
+ ); +}; + +export default JKNavbarTopCurrentUser; diff --git a/jam-ui/src/components/navbar/Logo.js b/jam-ui/src/components/navbar/Logo.js index 7bd279bfc..dcfb6d03d 100644 --- a/jam-ui/src/components/navbar/Logo.js +++ b/jam-ui/src/components/navbar/Logo.js @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { Link } from 'react-router-dom'; -import logo from '../../assets/img/illustrations/falcon.png'; +import logo from '../../assets/img/logos/JK_Logo_blue-2021.png'; const Logo = ({ at, width, className, ...rest }) => { return ( @@ -17,7 +17,7 @@ const Logo = ({ at, width, className, ...rest }) => { >
{ }, className )} + style={{ overflow: "visible" }} > - Logo - falcon + + Logo +
); diff --git a/jam-ui/src/components/navbar/NavbarTop.js b/jam-ui/src/components/navbar/NavbarTop.js index 8c0edeea2..072e62523 100644 --- a/jam-ui/src/components/navbar/NavbarTop.js +++ b/jam-ui/src/components/navbar/NavbarTop.js @@ -46,7 +46,7 @@ const NavbarTop = () => {