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;
});
};