feat(branding): force color mode (dark or light) site-wide
This commit is contained in:
@@ -219,9 +219,17 @@ router.put('/branding', adminAuth, requirePermission('settings.edit'), async (re
|
||||
logo_display_header,
|
||||
logo_display_hero,
|
||||
logo_display_mode,
|
||||
hide_powered_by
|
||||
hide_powered_by,
|
||||
force_color_mode
|
||||
} = req.body;
|
||||
|
||||
// Normalize force_color_mode: only 'dark' | 'light' | null are valid.
|
||||
const normalizedForceColorMode = force_color_mode === 'dark'
|
||||
? 'dark'
|
||||
: force_color_mode === 'light'
|
||||
? 'light'
|
||||
: null;
|
||||
|
||||
// Get current watermark settings hash for change detection
|
||||
const oldSettingsHash = await watermarkService.getSettingsHash();
|
||||
|
||||
@@ -243,7 +251,8 @@ router.put('/branding', adminAuth, requirePermission('settings.edit'), async (re
|
||||
logo_display_header,
|
||||
logo_display_hero,
|
||||
logo_display_mode,
|
||||
hide_powered_by
|
||||
hide_powered_by,
|
||||
force_color_mode: normalizedForceColorMode
|
||||
};
|
||||
|
||||
// Handle favicon deletion if empty string or null is provided
|
||||
|
||||
@@ -65,6 +65,14 @@ router.get('/', async (req, res) => {
|
||||
branding_logo_display_hero: settingsObject.branding_logo_display_hero !== false,
|
||||
branding_logo_display_mode: settingsObject.branding_logo_display_mode || 'logo_and_text',
|
||||
branding_hide_powered_by: settingsObject.branding_hide_powered_by === true,
|
||||
// Force a specific color mode site-wide. When set, the user toggle
|
||||
// is hidden and the value overrides per-theme/system preference.
|
||||
// Allowed values: 'dark' | 'light' | null (null = no force).
|
||||
branding_force_color_mode: settingsObject.branding_force_color_mode === 'dark'
|
||||
? 'dark'
|
||||
: settingsObject.branding_force_color_mode === 'light'
|
||||
? 'light'
|
||||
: null,
|
||||
theme_config: settingsObject.theme_config || null,
|
||||
default_language: settingsObject.general_default_language || 'en',
|
||||
enable_analytics: settingsObject.general_enable_analytics !== false,
|
||||
|
||||
Reference in New Issue
Block a user