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 ? : }
+
@@ -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}