diff --git a/components/App/index.tsx b/components/App/index.tsx deleted file mode 100644 index 50321431..00000000 --- a/components/App/index.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react' -import { Route, Routes, useNavigate } from 'react-router-dom' - -import Header from '~components/Header' - -import NewRoute from '~routes/NewRoute' -import PartyRoute from '~routes/PartyRoute' -import PartiesRoute from '~routes/PartiesRoute' -import ProfileRoute from '~routes/ProfileRoute' - - -const App = () => { - const navigate = useNavigate() - const route = (pathname: string) => navigate(pathname) - - return ( -
-
- - } /> - } /> - } /> - } /> - -
- ) -} - -export default App diff --git a/components/Header/index.scss b/components/Header/index.scss index ab8e23e5..94683bdf 100644 --- a/components/Header/index.scss +++ b/components/Header/index.scss @@ -1,36 +1,36 @@ -.Header { +#Header { display: flex; height: 34px; width: 100%; -} -.Header .right { - display: flex; - gap: 8px; -} + #right { + display: flex; + gap: 8px; + } -.Header .push { - margin-left: auto; -} + .dropdown { + display: inline-block; + position: relative; -.dropdown { - display: inline-block; - position: relative; -} + &:hover { + padding-right: 50px; + padding-bottom: 16px; -.dropdown:hover { - padding-right: 50px; - padding-bottom: 16px; -} + .Button .icon { + color: #2360C5; + } -.dropdown:hover .Button .icon { - color: #2360C5; -} + .Button .text { + color: #555; + } -.dropdown:hover .Button .text { - color: #555; -} + .Menu { + display: block; + } + } + } -.dropdown:hover .Menu { - display: block; -} \ No newline at end of file + .push { + margin-left: auto; + } +} diff --git a/components/Header/index.tsx b/components/Header/index.tsx index 39220a86..e00579f9 100644 --- a/components/Header/index.tsx +++ b/components/Header/index.tsx @@ -1,29 +1,30 @@ -import React, { useEffect, useState } from 'react' -import { useNavigate, useLocation } from 'react-router-dom' +import React, { useContext, useEffect, useState } from 'react' import { useCookies } from 'react-cookie' +import { useRouter } from 'next/router' + +import AppContext from '~context/AppContext' import Button from '~components/Button' import HeaderMenu from '~components/HeaderMenu' import './index.scss' -interface Props { - navigate: (pathname: string) => void -} +interface Props {} const Header = (props: Props) => { - const [username, setUsername] = useState(undefined) - const [cookies, setCookie, removeCookie] = useCookies(['user']) + const { editable, setEditable, setAuthenticated } = useContext(AppContext) - let navigate = useNavigate() - let location = useLocation() - - const route = (pathname: string) => props.navigate(pathname) + const [username, setUsername] = useState(undefined) + const [cookies, _, removeCookie] = useCookies(['user']) + + const router = useRouter() useEffect(() => { if (cookies.user) { setUsername(cookies.user.username) console.log(`Logged in as user "${cookies.user.username}"`) + } else { + console.log('You are currently not logged in.') } }, [cookies]) @@ -39,29 +40,34 @@ const Header = (props: Props) => { } function newParty() { - navigate('/') + router.push('/') } function logout() { removeCookie('user') - window.history.replaceState(null, `Grid Tool`, `/`) - navigate(0) + + setAuthenticated(false) + if (editable) setEditable(false) + + // How can we log out without navigating to root + router.push('/') + return false } return ( -