From 6d8056d483cb1ba4c4b4415c99c31404ef5db8e9 Mon Sep 17 00:00:00 2001 From: kbe Date: Thu, 14 Aug 2025 17:42:02 +0200 Subject: [PATCH] Add a sign-up and login button in the navbar --- components/ui/header.tsx | 128 +++++++++++++++++++++++---------------- 1 file changed, 76 insertions(+), 52 deletions(-) diff --git a/components/ui/header.tsx b/components/ui/header.tsx index 08b255a..0fb740e 100644 --- a/components/ui/header.tsx +++ b/components/ui/header.tsx @@ -6,23 +6,27 @@ import Link from "next/link" import { useState, useEffect } from "react" import { usePathname } from "next/navigation" - interface HeaderProps { className?: string isLoggedIn?: boolean isAdmin?: boolean } -const navigation = [ +const leftNavigation = [ { name: 'Home', href: '/', current: false, requiresAuth: false }, { name: 'Pricing', href: '/pricing', current: false, requiresAuth: false }, { name: 'FAQ', href: '/faq', current: false, requiresAuth: false }, - { name: 'Dashboard', href: '/dashboard', current: false, requiresAuth: false }, + { name: 'Dashboard', href: '/dashboard', current: false, requiresAuth: true }, { name: 'Projects', href: '/projects', current: false, requiresAuth: true }, - { name: 'Calendar', href: '/calendar', current: false, requiresAuth: false }, + { name: 'Calendar', href: '/calendar', current: false, requiresAuth: true }, { name: 'Reports', href: '/reports', current: false, requiresAuth: true }, ] +const rightNavigation = [ + { name: 'Sign-up', href: '/sign-up', current: false, requiresAuth: false }, + { name: 'Login', href: '/login', current: false, requiresAuth: false }, +] + export function Header({ className, isLoggedIn = false, isAdmin = false }: HeaderProps) { const [mobileMenuOpen, setMobileMenuOpen] = useState(false) const [profileOpen, setProfileOpen] = useState(false) @@ -59,7 +63,7 @@ export function Header({ className, isLoggedIn = false, isAdmin = false }: Heade
- {navigation.map((item) => { + {leftNavigation.map((item) => { const isCurrent = activeNavItem === item.href return ( (item.requiresAuth ? (isLoggedIn || isAdmin) : true) && ( @@ -83,55 +87,75 @@ export function Header({ className, isLoggedIn = false, isAdmin = false }: Heade
- {isLoggedIn && ( -
-
- - - {/* Profile dropdown */} -
-
- -
- - {profileOpen && ( -
- - Your Profile - - - Settings - - - Sign out - +
+
+ {!isLoggedIn && ( +
+
+
+ {rightNavigation.map((item) => ( + + {item.name} + + ))}
- )} +
-
+ )} + + {isLoggedIn && ( +
+ + + {/* Profile dropdown */} +
+
+ +
+ + {profileOpen && ( +
+ + Your Profile + + + Settings + + + Sign out + +
+ )} +
+
+ )}
- )} +
{/* Mobile menu button */} @@ -160,7 +184,7 @@ export function Header({ className, isLoggedIn = false, isAdmin = false }: Heade {mobileMenuOpen && (
- {navigation.map((item) => { + {leftNavigation.map((item) => { const isCurrent = activeNavItem === item.href return ( (item.requiresAuth ? (isLoggedIn || isAdmin) : true) && (