diff --git a/sites/dev/components/header.mjs b/sites/dev/components/header.mjs index 31b605ba3ce..97c79abe9b7 100644 --- a/sites/dev/components/header.mjs +++ b/sites/dev/components/header.mjs @@ -43,12 +43,16 @@ export const Header = ({ app, setSearch }) => { className={` btn btn-sm btn-ghost text-neutral-content bg-transparent - hover:text-secondary-focus + hover:bg-secondary hover:bg-opacity-50 lg:hidden + rounded-none + swap swap-rotate `} - onClick={app.togglePrimaryMenu} + onClick={() => app.updateState('menu.main', app.state?.menu?.main ? false : true)} > - {app.primaryMenu ? : } +
+ {app.state?.menu?.main ? : } +
@@ -60,7 +64,7 @@ export const Header = ({ app, setSearch }) => {
@@ -77,7 +81,9 @@ export const Header = ({ app, setSearch }) => { onClick={() => setSearch(true)} > - Ctrl K + + / +
diff --git a/sites/dev/components/navigation/aside.mjs b/sites/dev/components/navigation/aside.mjs index a282c7b084c..47b7923556e 100644 --- a/sites/dev/components/navigation/aside.mjs +++ b/sites/dev/components/navigation/aside.mjs @@ -7,20 +7,22 @@ export const AsideNavigation = ({ app, mobileOnly = false, before = [], after = fixed top-0 right-0 h-screen overflow-y-auto z-20 bg-base-100 text-base-content - ${app.state.primaryMenu ? '' : 'translate-x-[-120%]'} transition-transform + ${app.state?.menu?.main ? '' : 'translate-x-[-120%]'} transition-transform px-0 pb-20 pt-8 shrink-0 lg:w-auto lg:sticky lg:relative lg:transform-none lg:justify-center - lg:border-r-2 lg:border-base-200 lg:bg-base-200 lg:bg-opacity-50 - lg:mt-16 + lg:border-r-2 lg:border-base-200 lg:bg-base-300 lg:bg-opacity-10 + lg:pt-16 ${mobileOnly ? 'block lg:hidden w-full ' : ''} `} > - {before} - - - {after} +
+ {before} + + + {after} +
) diff --git a/sites/dev/components/navigation/primary.mjs b/sites/dev/components/navigation/primary.mjs index d3294c90c01..91be4405114 100644 --- a/sites/dev/components/navigation/primary.mjs +++ b/sites/dev/components/navigation/primary.mjs @@ -35,9 +35,9 @@ const currentChildren = (current) => // Shared classes for links // Exported for re-use -export const linkClasses = `text-lg lg:text-xl +export const linkClasses = ` py-1 - text-base-content sm:text-base-content + text-base text-base-content sm:text-base-content hover:text-secondary sm:hover:text-secondary ` @@ -180,8 +180,12 @@ export const MainSections = ({ app }) => { const act = isActive(page.s, app.state.slug) const txt = ( <> - {icons[page.s] ? icons[page.s](`w-8 h-8 ${act ? 'text-accent' : ''}`) : } - {page.t} + {icons[page.s] ? ( + icons[page.s](`w-6 h-6 ${act ? 'text-secondary-content' : ''}`) + ) : ( + + )} + {page.t} ) @@ -191,10 +195,12 @@ export const MainSections = ({ app }) => { @@ -205,8 +211,9 @@ export const MainSections = ({ app }) => { href={`/${page.s}`} className={` flex flex-row gap-4 items-center - hover:bg-secondary hover:bg-opacity-10 hover:cursor-pointer - p-2 rounded + hover:bg-secondary hover:bg-opacity-25 hover:cursor-pointer + p-2 px-4 rounded + rounded-none `} title={page.t} > diff --git a/sites/dev/lib/load-navigation.mjs b/sites/dev/lib/load-navigation.mjs index 9ef37e8b5c1..0807131b749 100644 --- a/sites/dev/lib/load-navigation.mjs +++ b/sites/dev/lib/load-navigation.mjs @@ -8,6 +8,8 @@ import orderBy from 'lodash.orderby' * - 404 => no navigation shown * - home page => no navvigation shown * - /contact => Added below + * + * Note: Set 'h' to truthy to not show a top-level entry as a section */ pbn.en.contact = { t: 'Contact information', s: 'contact', h: 1 } diff --git a/sites/dev/pages/contact.mjs b/sites/dev/pages/contact.mjs index 2ac5e58c614..c9098c29286 100644 --- a/sites/dev/pages/contact.mjs +++ b/sites/dev/pages/contact.mjs @@ -19,16 +19,11 @@ const No = () => ( ) -const ContactPage = () => { - const app = useApp({ - page: { - path: ['contact'], - }, - }) - const title = 'Contact information' +const ContactPage = (props) => { + const app = useApp(props) return ( - + { {() => ( <> {!iconOnly && ( diff --git a/sites/shared/components/wrappers/page.mjs b/sites/shared/components/wrappers/page.mjs index 952b49cf201..246f2a8d5e6 100644 --- a/sites/shared/components/wrappers/page.mjs +++ b/sites/shared/components/wrappers/page.mjs @@ -32,8 +32,8 @@ export const PageWrapper = ({ * Swipe handling for the entire site */ const swipeHandlers = useSwipeable({ - onSwipedLeft: () => (app.primaryMenu ? app.setPrimaryMenu(false) : null), - onSwipedRight: () => (app.primaryMenu ? null : app.setPrimaryMenu(true)), + onSwipedLeft: () => (app.state?.menu?.main ? app.updateState('menu.main', false) : null), + onSwipedRight: () => (app.state?.menu?.main ? null : app.updateState('menu.main', true)), trackMouse: true, }) @@ -49,7 +49,7 @@ export const PageWrapper = ({ // Always close modal when Escape key is hit useHotkeys('esc', (evt) => { evt.preventDefault() - app.setModal(false) + app.updateState('modal', null) }) // Search state @@ -63,7 +63,7 @@ export const PageWrapper = ({ setSearch, toggleSearch: () => setSearch(!search), noSearch: noSearch, - title, + title: app.state.title ? app.state.title : title, } // Make layout prop into a (uppercase) component @@ -87,7 +87,7 @@ export const PageWrapper = ({ bg-base-100 bg-opacity-90 z-50 hover:cursor-pointer flex flex-row items-center justify-center `} - onClick={() => app.setModal(false)} + onClick={() => app.updateState('modal', false)} > {app.modal}