1 import React from 'react'
2 import styled from 'styled-components'
3 import * as Search from './search'
4 import NavDrawer from './nav-drawer'
5 import Link from './link'
6 import useSearch from '../hooks/use-search'
7 import {HEADER_BAR, Z_INDEX} from '../constants'
8 import headerNavItems from '../../content/header-nav.yml'
9 import {DarkTheme} from '../theme'
10 import SiteTitle from './site-title'
11
12 import * as styles from './header.module.css'
13
14 const NpmHeaderBar = styled.div`
15 height: ${HEADER_BAR}px;
16 background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
17 `
18
19 function Header() {
20 const search = useSearch()
21
22 return (
23 <div className={styles.stickyHeader} style={{zIndex: Z_INDEX.HEADER}}>
24 <DarkTheme>
25 <NpmHeaderBar />
26 <header className={styles.headerBox}>
27 <div className={styles.Box}>
28 <SiteTitle logo={true} className={styles.SiteTitle} />
29 <div className={styles.searchDesktop}>
30 <Search.Desktop {...search} />
31 </div>
32 </div>
33 <div className={styles.Box_1}>
34 <div className={styles.navDesktop}>
35 {headerNavItems.map((item, index) => (
36 <Link key={index} href={item.url} className={styles.Link}>
37 {item.title}
38 </Link>
39 ))}
40 </div>
41 <div className={styles.navMobile}>
42 <Search.Mobile {...search} />
43 <NavDrawer />
44 </div>
45 </div>
46 </header>
47 </DarkTheme>
48 </div>
49 )
50 }
51
52 export default Header