import { Dialog, Menu } from "@headlessui/react"; import Link from "next/link.js"; import { useRouter } from "next/router.js"; import { useEffect, useState } from "react"; import { SearchContext, SearchField } from "../Search"; import { MenuIcon, CloseIcon } from "../Icons"; import { NavLink, SearchProviderConfig } from "../types"; interface Props extends React.PropsWithChildren { author?: string; links?: Array; search?: SearchProviderConfig; } // TODO why mobile navigation only accepts author and regular nav accepts different things like title, logo, version export const NavMobile: React.FC = ({ children, links, search, author, }) => { const router = useRouter(); const [isOpen, setIsOpen] = useState(false); const [Search, setSearch] = useState(); // TODO types useEffect(() => { if (!isOpen) return; function onRouteChange() { setIsOpen(false); } router.events.on("routeChangeComplete", onRouteChange); router.events.on("routeChangeError", onRouteChange); return () => { router.events.off("routeChangeComplete", onRouteChange); router.events.off("routeChangeError", onRouteChange); }; }, [router, isOpen]); useEffect(() => { if (search) { setSearch(SearchContext(search.provider)); } }, [search]); return ( <>
{/* */}
{author}
{Search && ( {({ query }: any) => } )} {links && (
    {links.map((link) => (
  • {link.name}
  • ))}
)} {/*
{children}
*/}
); };