diff options
Diffstat (limited to 'shared')
-rw-r--r-- | shared/constants.js | 1 | ||||
-rw-r--r-- | shared/defaults.js | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/shared/constants.js b/shared/constants.js index 132bbec..03c7bc3 100644 --- a/shared/constants.js +++ b/shared/constants.js @@ -1,2 +1,3 @@ export const BROWSER_STORAGE_KEY = "transparentZenSettings"; export const SKIP_FORCE_THEMING_KEY = "skipForceThemingList"; +export const FALLBACK_BACKGROUND_KEY = "fallbackBackgroundList"; diff --git a/shared/defaults.js b/shared/defaults.js new file mode 100644 index 0000000..db637fc --- /dev/null +++ b/shared/defaults.js @@ -0,0 +1,34 @@ +/** + * Default settings for Zen Internet extension + * These defaults are used when settings are missing or undefined + */ + +export const DEFAULT_SETTINGS = { + enableStyling: true, // Enable styling globally + autoUpdate: true, // Auto-update styles + forceStyling: false, // Force styling on sites without themes + whitelistMode: false, // Use blacklist mode by default for force styling + whitelistStyleMode: false, // Use blacklist mode by default for regular styling + disableTransparency: false, // Don't disable transparency by default + disableHover: false, // Don't disable hover effects by default + disableFooter: false, // Don't disable footers by default + fallbackBackgroundList: [], // Empty array for fallback background sites +}; + +/** + * Ensures all required settings are present with default values + * @param {Object} settings - Current settings object + * @returns {Object} - Settings object with defaults applied where needed + */ +export function ensureDefaultSettings(settings = {}) { + const result = { ...settings }; + + // Apply default values for any missing settings + for (const [key, defaultValue] of Object.entries(DEFAULT_SETTINGS)) { + if (result[key] === undefined) { + result[key] = defaultValue; + } + } + + return result; +} |