feat(admin): expand/collapse all sidebar groups with scrollable nav
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m6s

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-22 18:49:49 +02:00
1 parent e00e9ca2dc
commit 8d28739ca6
6 files changed
+166 -88

No files matched your search

+4 -7
View File
@@ -42,9 +42,7 @@ export default async function AdminLayout({
return ( return (
<> <>
{csrfToken ? ( {csrfToken ? <meta name="csrf-token" content={csrfToken} /> : null}
<meta name="csrf-token" content={csrfToken} />
) : null}
<AdminMobileWrapper sidebar={<Sidebar staff={staff} />}> <AdminMobileWrapper sidebar={<Sidebar staff={staff} />}>
<div <div
data-admin data-admin
@@ -72,9 +70,9 @@ async function Sidebar({
return ( return (
<aside <aside
data-admin data-admin
className="max-lg:static sticky top-0 self-start h-full lg:h-screen overflow-y-auto bg-[var(--admin-sidebar-background)] text-[var(--admin-sidebar-text-readable)] shadow-xl flex flex-col" className="max-lg:static sticky top-0 flex h-full max-h-screen min-h-0 w-full flex-col self-start overflow-hidden bg-[var(--admin-sidebar-background)] text-[var(--admin-sidebar-text-readable)] shadow-xl lg:h-screen"
> >
<div className="flex items-center gap-3 px-4 py-5 border-b border-[var(--admin-border)]"> <div className="flex shrink-0 items-center gap-3 border-b border-[var(--admin-border)] px-4 py-5">
<span <span
className="flex-none w-10 h-10 rounded-xl grid place-items-center font-extrabold text-base text-[var(--admin-accent-foreground)] bg-[var(--admin-accent)] shadow-lg shadow-[var(--admin-accent)]/20" className="flex-none w-10 h-10 rounded-xl grid place-items-center font-extrabold text-base text-[var(--admin-accent-foreground)] bg-[var(--admin-accent)] shadow-lg shadow-[var(--admin-accent)]/20"
aria-hidden aria-hidden
@@ -97,7 +95,7 @@ async function Sidebar({
<AdminSidebarNav /> <AdminSidebarNav />
<div className="px-3 py-3 border-t border-[var(--admin-border)]"> <div className="shrink-0 border-t border-[var(--admin-border)] px-3 py-3">
<Link <Link
href="/" href="/"
className="flex items-center gap-2.5 px-2.5 py-2 rounded-lg text-[var(--admin-sidebar-muted-readable)] text-xs font-medium hover:text-[var(--admin-sidebar-text-readable)] hover:bg-[var(--admin-accent)]/10 transition-all duration-150 no-underline" className="flex items-center gap-2.5 px-2.5 py-2 rounded-lg text-[var(--admin-sidebar-muted-readable)] text-xs font-medium hover:text-[var(--admin-sidebar-text-readable)] hover:bg-[var(--admin-accent)]/10 transition-all duration-150 no-underline"
@@ -109,4 +107,3 @@ async function Sidebar({
</aside> </aside>
); );
} }
@@ -84,7 +84,7 @@ export function AdminMobileWrapper({
{/* Sidebar */} {/* Sidebar */}
<div <div
className={`fixed inset-y-0 left-0 z-50 w-[260px] lg:!relative lg:!translate-x-0 lg:!min-h-screen ${ className={`fixed inset-y-0 left-0 z-50 flex h-full w-[260px] flex-col overflow-hidden lg:!relative lg:!min-h-screen lg:!translate-x-0 ${
open ? "translate-x-0" : "-translate-x-full" open ? "translate-x-0" : "-translate-x-full"
}`} }`}
style={{ transition: "transform 300ms ease-in-out" }} style={{ transition: "transform 300ms ease-in-out" }}
File diff suppressed because it is too large. Load diff
+2
View File
@@ -1080,6 +1080,8 @@
"import": "Import", "import": "Import",
"settings": "Settings", "settings": "Settings",
"backToSite": "Back to site", "backToSite": "Back to site",
"expandAll": "Expand all",
"collapseAll": "Collapse all",
"housekeeping": "Housekeeping", "housekeeping": "Housekeeping",
"hotelManagementPanel": "Hotel management panel", "hotelManagementPanel": "Hotel management panel",
"rankLabel": "Rank {rank}", "rankLabel": "Rank {rank}",
+2
View File
@@ -1010,6 +1010,8 @@
"import": "Importa", "import": "Importa",
"settings": "Impostazioni", "settings": "Impostazioni",
"backToSite": "Torna al sito", "backToSite": "Torna al sito",
"expandAll": "Apri tutte",
"collapseAll": "Chiudi tutte",
"hotelManagementPanel": "Pannello di gestione hotel", "hotelManagementPanel": "Pannello di gestione hotel",
"rankLabel": "Grado {rank}", "rankLabel": "Grado {rank}",
"hubNewsMedia": "Notizie e media", "hubNewsMedia": "Notizie e media",
+2
View File
@@ -1054,6 +1054,8 @@
"import": "Importeren", "import": "Importeren",
"settings": "Instellingen", "settings": "Instellingen",
"backToSite": "Terug naar site", "backToSite": "Terug naar site",
"expandAll": "Alles openen",
"collapseAll": "Alles sluiten",
"housekeeping": "Housekeeping", "housekeeping": "Housekeeping",
"hotelManagementPanel": "Hotelbeheerpaneel", "hotelManagementPanel": "Hotelbeheerpaneel",
"rankLabel": "Rang {rank}", "rankLabel": "Rang {rank}",