import { useState, useEffect } from 'react'; import Link from 'next/link'; import { useRouter } from 'next/router'; import classNames from 'classnames'; import { Button, Icon } from './jambonz-ui'; import { homeObj, mobileMedia } from '../lib/vars'; function NaviItem({obj}) { const router = useRouter(); const classes = { navi__link: true, active: (router.route === obj.link), }; return (
  • {obj.label}
  • ); } function NaviMobile({ active, handler, siteData }) { const classes = { 'bg-jambonz': true, 'wrap': true, 'navi__mobile': true, 'active': active, }; return (
    ); } export default function Navi({ siteData }) { const [active, setActive] = useState(false); const [mobile, setMobile] = useState(false); const handleNavi = () => { setActive(!active); }; const handleMedia = (e) => { setMobile(e.matches); // Make sure mobile navi is closed on resizes... if (!e.matches && active) { setActive(false); } }; useEffect(() => { const mql = window.matchMedia(mobileMedia); mql.addListener(handleMedia); setMobile(mql.matches); return function cleanup() { mql.removeListener(handleMedia); } }, [handleMedia, setMobile]); return ( ); }