@@ -2,43 +2,74 @@ import React from "react";
22import { Link } from "react-router-dom" ;
33import Logo from "../Logo" ;
44
5- export default class Header extends React . Component {
5+ interface HeaderState {
6+ isOpen : boolean ;
7+ }
8+
9+ export default class Header extends React . Component < { } , HeaderState > {
10+ constructor ( props : { } ) {
11+ super ( props ) ;
12+ this . state = {
13+ isOpen : false
14+ } ;
15+ }
16+
17+ private toggleMenu = ( ) : void => {
18+ this . setState ( ( prevState ) => ( { isOpen : ! prevState . isOpen } ) ) ;
19+ } ;
20+
621 public render ( ) {
22+ const { isOpen } = this . state ;
23+
724 return (
8- < div className = "bg-white shadow" >
25+ < header className = "fixed top-0 w-100 z-max bg-white shadow-4 " >
926 < nav
10- className = "mw8 relative center flex flex-wrap justify-between pa3"
27+ className = "relative flex flex-column flex-row-l justify-between-l items-center pa3 center mw9 "
1128 aria-label = "Primary"
1229 >
13- < div className = "logo mb4 mb0-ns" >
14- < Link to = "/" aria-label = "Home" >
15- < Logo />
16- </ Link >
30+ < div className = "w-100 w-auto-l flex justify-between items-center" >
31+ < div className = "logo" >
32+ < Link to = "/" aria-label = "Home" className = "mh4" >
33+ < Logo className = "" />
34+ </ Link >
35+ </ div >
36+
37+ < button
38+ className = "db dn-l pointer bg-transparent bn pa2 z-max"
39+ onClick = { this . toggleMenu }
40+ aria-label = "Toggle navigation"
41+ >
42+ < div className = "w2 h1 relative pointer" >
43+ < div className = { `bg-navy h-25 w-100 mb1 transition-all ${ isOpen ? "rotate-45 absolute top-0" : "" } ` } />
44+ < div className = { `bg-navy h-25 w-100 mb1 transition-all ${ isOpen ? "dn" : "" } ` } />
45+ < div className = { `bg-navy h-25 w-100 transition-all ${ isOpen ? "rotate-135 absolute top-0" : "" } ` } />
46+ </ div >
47+ </ button >
1748 </ div >
18- < div className = "mt5 mt2-ns" >
19- < Link
20- to = "/manual"
21- className = "link hover-blue f5 fw6 pv2 ph0 ph3-ns mr4-ns"
49+
50+ < div className = { `${ isOpen ? "flex" : "dn" } flex-l flex-column flex-row-l items-center static-l pa0-l shadow-none-l w-auto-l z-999 mt3 mt0-l` } >
51+ < Link
52+ className = "link navy hover-blue f5 fw6 pv3 pv2-l ph3-l mr4-l nowrap"
53+ to = "/community"
2254 >
23- Manual
55+ Community Board
2456 </ Link >
25- { /*
26- <Link
27- to="/community"
28- className="link hover-blue f5 fw6 pv2 ph0 ph3-ns mr4-ns"
57+ < Link
58+ className = "link navy hover-blue f5 fw6 pv3 pv2-l ph3-l mr4-l nowrap"
59+ to = "/manual"
2960 >
30- Community
61+ Manual
3162 </ Link >
32- */ }
63+
3364 < Link
3465 to = "/record-search"
35- className = "absolute top-1 right-1 static-ns bg- blue white bg-animate hover-bg-dark-blue f5 fw6 br2 pv2 ph3 "
66+ className = "link f5 fw6 pv2 ph3 blue br2 ba b--blue hover-bg-dark-blue hover-white tc mt3 mt0-l ml4-l "
3667 >
3768 Search
3869 </ Link >
3970 </ div >
4071 </ nav >
41- </ div >
72+ </ header >
4273 ) ;
4374 }
44- }
75+ }
0 commit comments