diff --git a/.gitignore b/.gitignore index a9fd027..26a5e38 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,7 @@ yarn-error.log* next-env.d.ts # http requests -*.http \ No newline at end of file +*.http + +# uploaded images +public/uploads diff --git a/components/ui/Navbar.tsx b/components/ui/Navbar.tsx index c712b61..150d54c 100644 --- a/components/ui/Navbar.tsx +++ b/components/ui/Navbar.tsx @@ -2,9 +2,10 @@ /* eslint-disable jsx-a11y/label-has-associated-control */ /* eslint-disable jsx-a11y/label-has-for */ +import UserContext from '@/contexts/userContext'; import Link from 'next/link'; import { useRouter } from 'next/router'; -import { useEffect, useState } from 'react'; +import { useContext, useEffect, useState } from 'react'; interface Page { slug: string; @@ -14,19 +15,36 @@ const Navbar = () => { const router = useRouter(); const [currentURL, setCurrentURL] = useState('/'); + const { user } = useContext(UserContext); + useEffect(() => { setCurrentURL(router.asPath); }, [router.asPath]); - const pages: Page[] = [ + const authenticatedPages: readonly Page[] = [ + { slug: '/account', name: 'Account' }, + { slug: '/logout', name: 'Logout' }, + ]; + + const unauthenticatedPages: readonly Page[] = [ + { slug: '/login', name: 'Login' }, + { slug: '/register', name: 'Register' }, + ]; + + const otherPages: readonly Page[] = [ { slug: '/beers', name: 'Beers' }, { slug: '/breweries', name: 'Breweries' }, ]; + const pages: readonly Page[] = [ + ...otherPages, + ...(user ? authenticatedPages : unauthenticatedPages), + ]; + return (