1
0
Fork 0
blog/src/components/molecules/Menu.tsx

36 lines
900 B
TypeScript
Raw Normal View History

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'
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)
}
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} />
<nav className={styles.menu}>
2019-11-09 17:28:39 +01:00
<ul>{MenuItems}</ul>
</nav>
2019-10-02 13:35:50 +02:00
</>
)
}