diff --git a/package.json b/package.json index d036d11..336f998 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,9 @@ "./features/admin/server": { "import": "./dist/features/admin/AdminPage.server.js" }, + "./features/admin/layout": { + "import": "./dist/features/admin/AdminLayout.server.js" + }, "./features/admin/client": { "import": "./dist/features/admin/AdminPage.client.js" }, diff --git a/src/features/admin/AdminLayout.server.js b/src/features/admin/AdminLayout.server.js new file mode 100644 index 0000000..5741634 --- /dev/null +++ b/src/features/admin/AdminLayout.server.js @@ -0,0 +1,23 @@ +import AdminShell from './components/AdminShell.js'; +import { protectAdmin } from './protect.js'; +import { buildNavigationSections } from './navigation.js'; +import { logoutAction } from '@zen/core/features/auth/actions'; +import { getAppName } from '@zen/core'; +import './widgets/index.server.js'; + +export default async function AdminLayout({ children }) { + const session = await protectAdmin(); + const appName = getAppName(); + const navigationSections = buildNavigationSections('/'); + + return ( + + {children} + + ); +} diff --git a/src/features/admin/AdminPage.server.js b/src/features/admin/AdminPage.server.js index 3444b07..1adb7c3 100644 --- a/src/features/admin/AdminPage.server.js +++ b/src/features/admin/AdminPage.server.js @@ -1,32 +1,17 @@ -import AdminShell from './components/AdminShell.js'; import AdminPageClient from './AdminPage.client.js'; import { protectAdmin } from './protect.js'; -import { buildNavigationSections } from './navigation.js'; import { collectWidgetData } from './registry.js'; -import { logoutAction } from '@zen/core/features/auth/actions'; -import { getAppName } from '@zen/core'; -import './widgets/index.server.js'; export default async function AdminPage({ params }) { const resolvedParams = await params; const session = await protectAdmin(); - const appName = getAppName(); - const widgetData = await collectWidgetData(); - const navigationSections = buildNavigationSections('/'); return ( - - - + widgetData={widgetData} + /> ); } diff --git a/src/features/admin/components/AdminSidebar.js b/src/features/admin/components/AdminSidebar.js index 1c6f06a..4c296a2 100644 --- a/src/features/admin/components/AdminSidebar.js +++ b/src/features/admin/components/AdminSidebar.js @@ -34,13 +34,6 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM return initial; }); - useEffect(() => { - try { - const stored = sessionStorage.getItem('zen-admin-sidebar-collapsed'); - if (stored !== null) setCollapsedSections(new Set(JSON.parse(stored))); - } catch {} - }, []); - const toggleSection = (sectionId) => { setCollapsedSections(prev => { const next = new Set(prev); @@ -49,9 +42,6 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM } else { next.add(sectionId); } - try { - sessionStorage.setItem('zen-admin-sidebar-collapsed', JSON.stringify([...next])); - } catch {} return next; }); };