Skip to content

Instantly share code, notes, and snippets.

@adiusz
Created July 1, 2020 11:17
Show Gist options
  • Save adiusz/cac7c8c07a617c06fb77fb36bc245efb to your computer and use it in GitHub Desktop.
Save adiusz/cac7c8c07a617c06fb77fb36bc245efb to your computer and use it in GitHub Desktop.
import React, { useState } from 'react';
import { graphql, Link, useStaticQuery } from "gatsby"
import styled from 'styled-components';
import Img from 'gatsby-image';
import AniLink from "gatsby-plugin-transition-link/AniLink"
export default () => {
const data = useStaticQuery(graphql`
query NavbarQueryPL {
datoCmsHomepage {
logo {
fluid(maxWidth: 240, imgixParams: { fm: "png", auto: "compress" }) {
...GatsbyDatoCmsFluid_noBase64
}
}
}
allDatoCmsProduct(sort: {fields: name, order: ASC}, filter: {locale: {eq: "pl"}}) {
edges {
node {
name
id
slug
}
}
totalCount
}
}
`);
const [menu, showMenu] = useState(false);
const [products, showProducts] = useState(false);
return (
<StyledNavbar >
<NavbarContainer>
<LogoWrapper>
<Linksy to="/">
<Img fluid={data.datoCmsHomepage.logo.fluid}/>
</Linksy>
</LogoWrapper>
<Hamburger showNav={menu} onClick={() => showMenu(!menu)}>
<HamburgerItemsWrapper>
<TextMenu showNav={menu}>
<span>MENU</span>
</TextMenu>
<HamburgerInner showNav={menu}>
<span/>
</HamburgerInner>
</HamburgerItemsWrapper>
</Hamburger>
<NavItems>
<NavUl showNav={menu} >
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/">
Home
</Linksy>
</li>
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/o-firmie">
O firmie
</Linksy>
</li>
<LiProducts showProducts={products} onClick={() => showProducts(!products)}>
<span>
Produkty
</span>
<ProductList showProducts={products}>
{data.allDatoCmsProduct.edges.map(({ node: product }) => (
<ProductListItem key={product.id}>
<Link
onClick={() => showMenu(!menu)}
to={`/produkt/${product.slug}`}>
{product.name}
</Link>
</ProductListItem>
))}
</ProductList>
</LiProducts>
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/galeria">
Galeria
</Linksy>
</li>
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/dla-projektantow">
Dla projektantów
</Linksy>
</li>
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/dokumenty">
Dokumenty
</Linksy>
</li>
<li onClick={() => showMenu(!menu)}>
<Linksy fade to="/kontakt">
Kontakt
</Linksy>
</li>
</NavUl>
</NavItems>
</NavbarContainer>
</StyledNavbar>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment