/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { SystemInfoSection } from '../general/system-info-section' import { parseHeaderNavModules, parseSidebarModulesAdmin, serializeHeaderNavModules, serializeSidebarModulesAdmin, } from '../maintenance/config' import { HeaderNavigationSection } from '../maintenance/header-navigation-section' import { NoticeSection } from '../maintenance/notice-section' import { SidebarModulesSection } from '../maintenance/sidebar-modules-section' import type { SiteSettings } from '../types' import { createSectionRegistry } from '../utils/section-registry' const SITE_SECTIONS = [ { id: 'system-info', titleKey: 'System Information', build: (settings: SiteSettings) => ( ), }, { id: 'notice', titleKey: 'System Notice', build: (settings: SiteSettings) => ( ), }, { id: 'header-navigation', titleKey: 'Header navigation', build: (settings: SiteSettings) => { const headerNavConfig = parseHeaderNavModules(settings.HeaderNavModules) const headerNavSerialized = serializeHeaderNavModules(headerNavConfig) return ( ) }, }, { id: 'sidebar-modules', titleKey: 'Sidebar modules', build: (settings: SiteSettings) => { const sidebarConfig = parseSidebarModulesAdmin( settings.SidebarModulesAdmin ) const sidebarSerialized = serializeSidebarModulesAdmin(sidebarConfig) return ( ) }, }, ] as const export type SiteSectionId = (typeof SITE_SECTIONS)[number]['id'] const siteRegistry = createSectionRegistry({ sections: SITE_SECTIONS, defaultSection: 'system-info', basePath: '/system-settings/site', urlStyle: 'path', }) export const SITE_SECTION_IDS = siteRegistry.sectionIds export const SITE_DEFAULT_SECTION = siteRegistry.defaultSection export const getSiteSectionNavItems = siteRegistry.getSectionNavItems export const getSiteSectionContent = siteRegistry.getSectionContent export const getSiteSectionMeta = siteRegistry.getSectionMeta