import { AdminShell, type DbMenuItem } from "@gsc/web-kit/chrome"; import sidebarMenuJson from "@/config/sidebar-menu.json"; import { getAuthenticatedUser, requireAuth } from "@/auth"; import { brand } from "@/config/brand"; import ActiveGrantsWidget from "@/components/pam/ActiveGrantsWidget"; type LegacySidebarItem = { id: number; icon?: string; name: string; url: string; key: string; submenulvl1?: { name: string; url: string; key: string; icon?: string }[]; }; // Map the legacy JSON-driven sidebar onto the kit's DbMenuItem shape. // (When gscMy gets its own admin.menu_items rows we can drop the JSON // and load from DB the same way gscAdmin does.) function toDbMenuItem(item: LegacySidebarItem, order: number): DbMenuItem { return { id: String(item.id), key: item.key, translationKey: item.name, url: item.url, icon: item.icon ?? null, sortOrder: order, isActive: true, isSystemRequired: false, children: item.submenulvl1?.map((c, i) => ({ id: `${item.id}.${i + 1}`, key: c.key, translationKey: c.name, url: c.url, icon: c.icon ?? null, sortOrder: i, isActive: true, isSystemRequired: false, })) ?? [], }; } const sidebar = (sidebarMenuJson as LegacySidebarItem[]).map(toDbMenuItem); export default async function MyGroupLayout({ children, }: { children: React.ReactNode; }) { await requireAuth(); const user = await getAuthenticatedUser(); return ( , }} > {children} ); }