Skip to content

Instantly share code, notes, and snippets.

@otsolap
Created May 2, 2021 16:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save otsolap/e9935bf4de44c17ab3f91e352229db81 to your computer and use it in GitHub Desktop.
Save otsolap/e9935bf4de44c17ab3f91e352229db81 to your computer and use it in GitHub Desktop.
Navigation js 2nd attempt with Map
import React from "react"
import { graphql, StaticQuery, Link } from "gatsby"
import Nav from "react-bootstrap/Nav"
import Navbar from "react-bootstrap/Navbar"
import NavDropdown from "react-bootstrap/NavDropdown"
function menuLinks() {
return (
<StaticQuery
query={graphql`
query menuItems {
site {
siteMetadata {
MenuLinks {
link
title
subMenu {
link
title
}
}
}
}
}
`}
render={data => (
<ul>
{data.site.siteMetadata.map((element) => (
<Nav.Link as="li" key={element.MenuLinks.title}>
<Link
to={element.MenuLinks.link}
>
{element.MenuLinks.title}
</Link>
{element.MenuLinks.subMenu && element.MenuLinks.subMenulength > 0 ? (
<NavDropdown class="sub-items responsive-navbar-nav">
{element.MenuLinks.subMenu.map((subpath) => (
<NavDropdown.Item a href={subpath.link}>
{subpath.title}
</NavDropdown.Item>
))}
</NavDropdown>
) : null}
</Nav.Link>))
}</ul>
)}
/>
)
}
class Navigation extends React.Component {
render() {
return (
<Navbar collapseOnSelect expand="md" className="site-navigation">
<Navbar.Brand class="logo" href="/">Metsän Otus</Navbar.Brand>
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse id="responsive-navbar-nav">
<ul>
{menuLinks}
</ul>
</Navbar.Collapse>
</Navbar >
)
}
}
export default Navigation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment