2020-05-22 14:38:19 +02:00
|
|
|
import React, { ReactElement, useState } from 'react'
|
2019-10-11 23:50:03 +02:00
|
|
|
import { Helmet } from 'react-helmet'
|
2019-10-02 15:32:01 +02:00
|
|
|
import { Link } from 'gatsby'
|
2019-10-02 13:35:50 +02:00
|
|
|
import Hamburger from '../atoms/Hamburger'
|
2022-11-11 03:31:54 +01:00
|
|
|
import * as styles from './Menu.module.css'
|
2019-10-02 15:32:01 +02:00
|
|
|
import { useSiteMetadata } from '../../hooks/use-site-metadata'
|
2019-10-02 13:35:50 +02:00
|
|
|
|
2020-05-22 14:38:19 +02:00
|
|
|
export default function Menu(): ReactElement {
|
2019-10-02 13:35:50 +02:00
|
|
|
const [menuOpen, setMenuOpen] = useState(false)
|
2019-10-02 15:32:01 +02:00
|
|
|
const { menu } = useSiteMetadata()
|
2019-10-02 13:35:50 +02:00
|
|
|
|
2021-03-15 21:01:55 +01:00
|
|
|
function toggleMenu(): void {
|
2019-10-02 13:35:50 +02:00
|
|
|
setMenuOpen(!menuOpen)
|
|
|
|
}
|
|
|
|
|
2022-11-11 03:31:54 +01:00
|
|
|
const MenuItems = menu.map((item) => (
|
|
|
|
<li key={item.title}>
|
|
|
|
<Link onClick={toggleMenu} to={item.link}>
|
|
|
|
{item.title}
|
|
|
|
</Link>
|
|
|
|
</li>
|
|
|
|
))
|
2019-10-02 13:35:50 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<Helmet>
|
2019-11-15 21:15:43 +01:00
|
|
|
<html className={menuOpen ? 'has-menu-open' : undefined} lang="en" />
|
2019-10-02 13:35:50 +02:00
|
|
|
</Helmet>
|
|
|
|
<Hamburger onClick={toggleMenu} />
|
2022-11-11 03:31:54 +01:00
|
|
|
<nav className={styles.menu}>
|
2019-11-09 17:28:39 +01:00
|
|
|
<ul>{MenuItems}</ul>
|
|
|
|
</nav>
|
2019-10-02 13:35:50 +02:00
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|