1+ import "./nav-bar.css" ;
2+
3+ const nav = document . querySelector ( 'nav' ) ;
4+
5+ if ( nav ) {
6+ const navContainer = document . createElement ( 'div' ) ;
7+ navContainer . className = 'nav-container' ;
8+
9+ const logo = document . createElement ( 'div' ) ;
10+ logo . className = 'logo' ;
11+ logo . textContent = 'SWGoH Updates' ;
12+ navContainer . appendChild ( logo ) ;
13+
14+ const menuToggle = document . createElement ( 'button' ) ;
15+ menuToggle . className = 'menu-toggle' ;
16+ menuToggle . setAttribute ( 'aria-label' , 'Toggle menu' ) ;
17+ menuToggle . textContent = '☰' ;
18+ navContainer . appendChild ( menuToggle ) ;
19+
20+ const navLinks = document . createElement ( 'ul' ) ;
21+ navLinks . className = 'nav-links' ;
22+
23+ const links : { href : string ; text : string } [ ] = [
24+ { href : 'javascript:history.back()' , text : 'Back' } ,
25+ { href : '/' , text : 'Home' } ,
26+ { href : '../swgoh-portrait-maker/' , text : 'SWGoH Portrait Maker' } ,
27+ { href : '../swgoh-updates/' , text : 'SWGoH Updates' } ,
28+ { href : '../about/' , text : 'About' } ,
29+ ] ;
30+
31+ links . forEach ( link => {
32+ const li = document . createElement ( 'li' ) ;
33+ const a = document . createElement ( 'a' ) ;
34+ a . href = link . href ;
35+ a . textContent = link . text ;
36+ li . appendChild ( a ) ;
37+ navLinks . appendChild ( li ) ;
38+ } ) ;
39+
40+ navContainer . appendChild ( navLinks ) ;
41+
42+ nav . appendChild ( navContainer ) ;
43+
44+ document . querySelector ( ".menu-toggle" ) ?. addEventListener ( "click" , ( ) => {
45+ document . querySelector ( ".nav-links" ) ?. classList . toggle ( "show" ) ;
46+ } ) ;
47+
48+ adjustBodyPadding ( ) ;
49+ window . addEventListener ( 'resize' , adjustBodyPadding ) ;
50+ }
51+
52+ function adjustBodyPadding ( ) {
53+ const nav = document . querySelector ( 'nav' ) ;
54+ if ( nav ) {
55+ document . body . style . paddingTop = `${ nav . offsetHeight } px` ;
56+ }
57+ }
0 commit comments