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

37 lines
920 B
TypeScript
Raw Normal View History

2019-10-02 13:35:50 +02:00
import React, { 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 styles from './Menu.module.scss'
2019-10-02 15:32:01 +02:00
import { useSiteMetadata } from '../../hooks/use-site-metadata'
2019-10-28 23:00:55 +01:00
import { MenuItem } from '../../@types/Site'
2019-10-02 13:35:50 +02:00
export default function Menu() {
const [menuOpen, setMenuOpen] = useState(false)
2019-10-02 15:32:01 +02:00
const { menu } = useSiteMetadata()
2019-10-02 13:35:50 +02:00
const toggleMenu = () => {
setMenuOpen(!menuOpen)
}
2019-10-16 01:45:30 +02:00
const MenuItems = menu.map((item: MenuItem) => (
2019-10-02 13:35:50 +02:00
<li key={item.title}>
<Link onClick={toggleMenu} to={item.link}>
{item.title}
</Link>
</li>
))
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} />
2019-11-09 17:28:39 +01:00
<nav className={styles.menu}>
<ul>{MenuItems}</ul>
</nav>
2019-10-02 13:35:50 +02:00
</>
)
}