- {g.label}
+ // Render top-level items and their children in order
+ topLevelItems.forEach(item => {
+ const menuType = item.menu_type ?? item.menuType;
+
+ if (menuType === 'group') {
+ // Render group with its children
+ const children = (childMap[item.id] || []).sort((a, b) => {
+ const orderA = typeof a.sortOrder === 'number' ? a.sortOrder : Infinity;
+ const orderB = typeof b.sortOrder === 'number' ? b.sortOrder : Infinity;
+ return orderA - orderB;
+ });
+ items.push(
+
+
+ {item.label}
+
+ {children.map(c => renderMenuItem(c, 1))}
- {children.map(c => renderMenuItem(c, 1))}
-
- );
- });
-
- // Render top-level pages
- topLevel.sort((a, b) => {
- const orderA = typeof a.sortOrder === 'number' ? a.sortOrder : Infinity;
- const orderB = typeof b.sortOrder === 'number' ? b.sortOrder : Infinity;
- return orderA - orderB;
- }).forEach(m => {
- items.push(renderMenuItem(m));
+ );
+ } else {
+ // Render standalone page
+ items.push(renderMenuItem(item));
+ }
});
return items;