Preserve header state during page transitions

This commit is contained in:
Akira Tempaku 2025-05-03 15:11:31 +09:00
parent e09e544c31
commit 7d3d247a04
Signed by: paku
GPG key ID: 5B4E8402BCC50607

View file

@ -13,7 +13,11 @@
(defcomp ~pc-header ()
(hsx
(nav :class "hidden md:flex items-end"
(header :class "hidden md:flex justify-between py-4 border-b-1 top-0 bg-white"
(h1 :class "z-20 text-3xl font-bold"
(a :href "/"
"skyizwhite"))
(nav :class "flex items-end"
(ul :preload "mouseover" :class "flex gap-4 text-xl font-medium"
(loop
:for (href label) :in *nav-menu* :collect
@ -21,11 +25,17 @@
(hsx (li :class "text-pink-500"
label))
(hsx (li (a :href href :class "hover:text-pink-500"
label)))))))))
label))))))))))
(defcomp ~sp-header ()
(hsx
(div :class "block md:hidden" :x-data "{ open: false }"
(header
:id "sp-header" :x-data "{ open: false }" :hx-preserve t
:class "flex md:hidden justify-between py-2 border-b-1 top-0 bg-white"
(h1 :class "z-20 text-2xl font-bold"
(a :href "/" :@click "open = false"
"skyizwhite"))
(div
(button
:class "z-20 size-8 flex flex-col justify-center cursor-pointer relative"
:type "button"
@ -57,21 +67,11 @@
:preload "mousedown"
:class "flex flex-col h-fit gap-8 text-3xl font-medium"
(loop
:for (href label) :in *nav-menu* :collect
(if (search href (request-uri jingle:*request*))
(hsx (li :class "text-pink-500"
label))
(hsx (li (a
:href href
:class "hover:text-pink-500"
:@click "open = false"
label))))))))))
:for (href label) :in (append '(("/" "home")) *nav-menu*) :collect
(hsx (li (a :href href :@click "open = false" label))))))))))
(defcomp ~header ()
(hsx
(header :class "flex justify-between py-2 md:py-4 border-b-1 top-0 bg-white"
(h1 :class "z-20 text-2xl md:text-3xl font-bold"
(a :href "/"
"skyizwhite"))
(<>
(~pc-header)
(~sp-header))))