1- import React from 'react' ;
1+ import React , { useState } from 'react' ;
22import './Header.css' ;
33import { useAuth } from '../../contexts/AuthContext' ;
44
@@ -8,37 +8,55 @@ interface HeaderProps {
88
99const Header : React . FC < HeaderProps > = ( { isSubpage = false } ) => {
1010 const { user} = useAuth ( ) ;
11+ const [ mobileMenuOpen , setMobileMenuOpen ] = useState ( false ) ;
1112
1213 return (
1314 < header className = "app-header" >
1415 < nav className = "app-nav" >
15- { isSubpage && (
16- < button onClick = { ( ) => window . location . hash = '' } className = "back-arrow" title = "Back to Home" >
17- ←
18- </ button >
19- ) }
2016 < div className = "nav-logo" onClick = { ( ) => window . location . hash = '' } style = { { cursor : 'pointer' } } >
2117 < img src = "images/logo_salamander.png" alt = "Salamander" className = "logo-image" />
2218 < h1 > Salamander</ h1 >
2319 </ div >
24- < div className = "nav-links" >
25- < button onClick = { ( ) => window . location . hash = 'learn-more' }
26- className = "nav-link nav-link-secondary" > Get Started
20+ < button
21+ className = "hamburger-menu"
22+ onClick = { ( ) => setMobileMenuOpen ( ! mobileMenuOpen ) }
23+ aria-label = "Toggle menu"
24+ >
25+ < span > </ span >
26+ < span > </ span >
27+ < span > </ span >
28+ </ button >
29+ < div className = { `nav-links ${ mobileMenuOpen ? 'mobile-open' : '' } ` } >
30+ < button onClick = { ( ) => {
31+ window . location . hash = 'learn-more' ;
32+ setMobileMenuOpen ( false ) ;
33+ } } className = "nav-link nav-link-secondary" > Get Started
2734 </ button >
28- < button onClick = { ( ) => window . location . hash = 'pricing' } className = "nav-link" > Pricing</ button >
35+ < button onClick = { ( ) => {
36+ window . location . hash = 'pricing' ;
37+ setMobileMenuOpen ( false ) ;
38+ } } className = "nav-link" > Pricing</ button >
2939 { user ? (
3040 < button
3141 className = "nav-link"
32- onClick = { ( ) => window . location . hash = 'account' }
42+ onClick = { ( ) => {
43+ window . location . hash = 'account' ;
44+ setMobileMenuOpen ( false ) ;
45+ } }
3346 title = { `${ user . displayName || user . email } - View Account` }
3447 >
3548 Profile
3649 </ button >
3750 ) : (
3851 < >
39- < button onClick = { ( ) => window . location . hash = 'auth' } className = "nav-link" > Log In</ button >
40- < button onClick = { ( ) => window . location . hash = 'auth' }
41- className = "nav-link nav-link-primary" > Sign Up
52+ < button onClick = { ( ) => {
53+ window . location . hash = 'auth' ;
54+ setMobileMenuOpen ( false ) ;
55+ } } className = "nav-link" > Log In</ button >
56+ < button onClick = { ( ) => {
57+ window . location . hash = 'auth' ;
58+ setMobileMenuOpen ( false ) ;
59+ } } className = "nav-link nav-link-primary" > Sign Up
4260 </ button >
4361 </ >
4462 ) }
0 commit comments