// Hooks import { useRouter } from 'next/router' // Components import { Header, ns as headerNs } from 'site/components/header/index.mjs' import { Footer, ns as footerNs } from 'site/components/footer/index.mjs' import { Search, ns as searchNs } from 'site/components/search.mjs' export const ns = [...new Set([...headerNs, ...footerNs, ...searchNs])] export const LayoutWrapper = ({ app, children = [], footer, search, setSearch, noSearch = false, }) => { const startNavigation = () => { app.startLoading() // Force close of menu on mobile if it is open if (app.primaryNavigation) app.setPrimaryNavigation(false) // Force close of search modal if it is open if (search) setSearch(false) } const router = useRouter() router.events?.on('routeChangeStart', startNavigation) router.events?.on('routeChangeComplete', () => app.stopLoading()) return (
{children}
{!noSearch && search && ( <>
)} {footer &&
) }