From a084f326a54d3de9e05bb9ef8ea06fd7becd1a89 Mon Sep 17 00:00:00 2001 From: lcross2002 <liamdcross@outlook.com> Date: Wed, 3 Apr 2024 19:47:45 +0100 Subject: [PATCH] swap links to navlinks --- client/src/components/Header/Header.scss | 11 ++++++++++- client/src/components/Header/Header.tsx | 24 ++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/client/src/components/Header/Header.scss b/client/src/components/Header/Header.scss index 61cfa62..370c82d 100644 --- a/client/src/components/Header/Header.scss +++ b/client/src/components/Header/Header.scss @@ -28,6 +28,15 @@ } .nav-item { + padding: 4px; margin-left: 0.5rem; margin-right: 0.5rem; -} \ No newline at end of file +} + +.nav-item-active { + padding: 4px; + margin-left: 0.5rem; + margin-right: 0.5rem; + pointer-events: none; + background-color: white; +} diff --git a/client/src/components/Header/Header.tsx b/client/src/components/Header/Header.tsx index 4128437..94a1e52 100644 --- a/client/src/components/Header/Header.tsx +++ b/client/src/components/Header/Header.tsx @@ -1,11 +1,19 @@ -import { Link } from 'react-router-dom'; +import { NavLink } from 'react-router-dom'; import { useAuth } from '../../hooks/useAuth'; -import './Header.scss'; import { userToDashboard } from '../../helpers/UserType'; +import './Header.scss'; + +type NavLinkRenderProps = { isActive: boolean }; function Header() { const { isAuth, user } = useAuth(); + const activeClass = (props: NavLinkRenderProps) => { + if (props.isActive) + return 'nav-item-active'; + return 'nav-item'; + }; + return ( <> <div className='header'> @@ -13,17 +21,17 @@ function Header() { <span className='header-title'>Airline Booking</span> <nav className='nav'> - <Link to={'/'} className='nav-item'>Home</Link> + <NavLink to={'/'} className={activeClass}>Home</NavLink> {isAuth ? <div> - <Link to={userToDashboard(user)} className='nav-item'>Dashboard</Link> - <Link to={'booking/query'} className='nav-item'>Book a Flight</Link> - <Link to={'logout'} className='nav-item'>Logout</Link> + <NavLink to={userToDashboard(user)} className={activeClass} >Dashboard</NavLink> + <NavLink to={'booking/query'} className={activeClass}>Book a Flight</NavLink> + <NavLink to={'logout'} className={activeClass}>Logout</NavLink> </div> : <div> - <Link to={'login'} className='nav-item'>Login</Link> - <Link to={'register'} className='nav-item'>Register</Link> + <NavLink to={'login'} className={activeClass}>Login</NavLink> + <NavLink to={'register'} className={activeClass}>Register</NavLink> </div>} </nav> </div> -- GitLab