/*
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 { SettingsPage } from '../components/settings-page'
import type { ContentSettings, SystemOption } from '../types'
import {
CONTENT_DEFAULT_SECTION,
getContentSectionContent,
getContentSectionMeta,
} from './section-registry.tsx'
const defaultContentSettings: ContentSettings = {
'console_setting.api_info': '[]',
'console_setting.announcements': '[]',
'console_setting.faq': '[]',
'console_setting.uptime_kuma_groups': '[]',
'console_setting.api_info_enabled': true,
'console_setting.announcements_enabled': true,
'console_setting.faq_enabled': true,
'console_setting.uptime_kuma_enabled': false,
DataExportEnabled: false,
DataExportDefaultTime: 'hour',
DataExportInterval: 5,
Chats: '[]',
DrawingEnabled: false,
MjNotifyEnabled: false,
MjAccountFilterEnabled: false,
MjForwardUrlEnabled: false,
MjModeClearEnabled: false,
MjActionCheckSuccessEnabled: false,
}
function resolveContentSettings(
settings: ContentSettings,
raw: SystemOption[] | undefined
): ContentSettings {
if (!raw || raw.length === 0) return settings
const optionMap = new Map(raw.map((item) => [item.key, item.value]))
const next = { ...settings }
const legacyMap = [
{ current: 'console_setting.announcements', legacy: 'Announcements' },
{ current: 'console_setting.api_info', legacy: 'ApiInfo' },
{ current: 'console_setting.faq', legacy: 'FAQ' },
] as const
for (const { current, legacy } of legacyMap) {
if (!optionMap.has(current)) {
const legacyValue = optionMap.get(legacy)
if (legacyValue !== undefined) {
next[current] = legacyValue
}
}
}
if (!optionMap.has('console_setting.uptime_kuma_groups')) {
const legacyUrl = optionMap.get('UptimeKumaUrl')
const legacySlug = optionMap.get('UptimeKumaSlug')
if (legacyUrl && legacySlug) {
next['console_setting.uptime_kuma_groups'] = JSON.stringify([
{ id: 1, categoryName: 'Legacy', url: legacyUrl, slug: legacySlug },
])
}
}
return next
}
export function ContentSettings() {
return (
)
}