diff --git a/frontend/frontend/src/components/Home/Progress.js b/frontend/frontend/src/components/Home/Progress.js index a7d8d101..1c22d6cc 100644 --- a/frontend/frontend/src/components/Home/Progress.js +++ b/frontend/frontend/src/components/Home/Progress.js @@ -46,7 +46,7 @@ const ProgressBar = ({ items, currItem, setCurrItem }) => { const rightDisabled = currItem === items.length - 1; return ( -
+
dispatch(_setUserAccess(access.token, access.privateAccess)); + useEffect(() => { + if (isAuthenticated && stage === 0) { + setStage(1); + } + }, [isAuthenticated]); + useEffect(() => { async function getPrivateAccess() { if (userKey && userKey.length > 0) { @@ -40,9 +47,9 @@ function App() { return (
-
+
- +
diff --git a/frontend/frontend/src/pages/App/Header.js b/frontend/frontend/src/pages/App/Header.js index 0b213109..c5c2c74c 100644 --- a/frontend/frontend/src/pages/App/Header.js +++ b/frontend/frontend/src/pages/App/Header.js @@ -60,98 +60,99 @@ MobileLink.propTypes = propTypes; MobileLink.defaultProps = defaultProps; -const Header = ({ mode }) => { +const Header = ({ mode, stage, setStage }) => { const [toggle, setToggle] = useState(false); const isAuthenticated = useIsAuthenticated(); - const [stage, setStage] = useState(isAuthenticated ? 1 : 0); const dispatch = useDispatch(); const logout = () => dispatch(_logout()); return ( -
-
- {/* GitHub Trends Logo */} - - logo - {mode === 'trends' && ( - GitHub Trends - )} - - {/* Star on GitHub */} -
- +
+ - {/* Hamburger Menu */} -
- -
-
- {/* Hamburger Dropdown */} -
- {mode === 'trends' && ( - <> - setToggle(false)}> - Dashboard - - - )} - {isAuthenticated ? ( - <> - {mode === 'trends' && ( - setToggle(false)}> - Settings + {/* Hamburger Dropdown */} +
+ {mode === 'trends' && ( + <> + setToggle(false)}> + Dashboard - )} - { - setToggle(false); - logout(); - }} - > - Sign Out - - - ) : ( - <> - - Login - - setToggle(false)} - className="block text-sm px-2 my-2 py-2 rounded-sm bg-blue-500 text-white" - > - Sign Up - - - )} + + )} + {isAuthenticated ? ( + <> + {mode === 'trends' && ( + setToggle(false)}> + Settings + + )} + { + setToggle(false); + logout(); + }} + > + Sign Out + + + ) : ( + <> + + Login + + setToggle(false)} + className="block text-sm px-2 my-2 py-2 rounded-sm bg-blue-500 text-white" + > + Sign Up + + + )} +
{ currItem={stage} setCurrItem={setStage} /> -
+ ); }; Header.propTypes = { mode: PropTypes.string.isRequired, + stage: PropTypes.number.isRequired, + setStage: PropTypes.func.isRequired, }; export default Header; diff --git a/frontend/frontend/src/pages/Home/Home.js b/frontend/frontend/src/pages/Home/Home.js index 2964b0ab..43de08b8 100644 --- a/frontend/frontend/src/pages/Home/Home.js +++ b/frontend/frontend/src/pages/Home/Home.js @@ -1,5 +1,6 @@ import React, { useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; +import PropTypes from 'prop-types'; import BounceLoader from 'react-spinners/BounceLoader'; import { v4 as uuidv4 } from 'uuid'; @@ -24,7 +25,7 @@ import { usePrivateAccess, } from '../../redux/selectors/userSelectors'; -const HomeScreen = () => { +const HomeScreen = ({ stage, setStage }) => { const [isLoading, setIsLoading] = useState(false); const userId = useUserId(); @@ -35,14 +36,6 @@ const HomeScreen = () => { const login = (newUserId, userKey) => dispatch(_login(newUserId, userKey)); - // for all stages - const [stage, setStage] = useState(isAuthenticated ? 1 : 0); - useEffect(() => { - if (isAuthenticated && stage === 0) { - setStage(1); - } - }, [isAuthenticated]); - // for stage one const [selectedCard, setSelectedCard] = useState('stats'); const [imageSrc, setImageSrc] = useState(`?username=${userId}`); @@ -347,4 +340,9 @@ const HomeScreen = () => { ); }; +HomeScreen.propTypes = { + stage: PropTypes.number.isRequired, + setStage: PropTypes.func.isRequired, +}; + export default HomeScreen;