From d5d685aaf4e796faf612c6d0fea0f0cc9ea49614 Mon Sep 17 00:00:00 2001 From: Ricardo Cino Date: Mon, 28 Nov 2022 16:53:04 +0100 Subject: fix: ensure default values are working for the all fields in all settings screens (#750) Co-authored-by: Vijay A --- src/containers/settings/EditServiceScreen.tsx | 180 ++++++++---- src/containers/settings/EditSettingsScreen.tsx | 368 +++++++++++++++++++------ 2 files changed, 407 insertions(+), 141 deletions(-) (limited to 'src/containers') diff --git a/src/containers/settings/EditServiceScreen.tsx b/src/containers/settings/EditServiceScreen.tsx index 9e61cdd78..d02138fce 100644 --- a/src/containers/settings/EditServiceScreen.tsx +++ b/src/containers/settings/EditServiceScreen.tsx @@ -17,6 +17,7 @@ import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; import globalMessages from '../../i18n/globalMessages'; import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; import withParams from '../../components/util/WithParams'; +import { ifUndefined } from '../../jsUtils'; const messages = defineMessages({ name: { @@ -188,61 +189,87 @@ class EditServiceScreen extends Component { }, isEnabled: { label: intl.formatMessage(messages.enableService), - value: service?.isEnabled, + value: ifUndefined( + service?.isEnabled, + DEFAULT_SERVICE_SETTINGS.isEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isEnabled, type: 'checkbox', }, isHibernationEnabled: { label: intl.formatMessage(messages.enableHibernation), - value: service?.isHibernationEnabled, + value: ifUndefined( + service?.isHibernationEnabled, + DEFAULT_SERVICE_SETTINGS.isHibernationEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isHibernationEnabled, type: 'checkbox', }, isWakeUpEnabled: { label: intl.formatMessage(messages.enableWakeUp), - value: service?.isWakeUpEnabled, + value: ifUndefined( + service?.isWakeUpEnabled, + DEFAULT_SERVICE_SETTINGS.isWakeUpEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isWakeUpEnabled, type: 'checkbox', }, isNotificationEnabled: { label: intl.formatMessage(messages.enableNotification), - value: service?.isNotificationEnabled, + value: ifUndefined( + service?.isNotificationEnabled, + DEFAULT_SERVICE_SETTINGS.isNotificationEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isNotificationEnabled, type: 'checkbox', }, isBadgeEnabled: { label: intl.formatMessage(messages.enableBadge), - value: service?.isBadgeEnabled, + value: ifUndefined( + service?.isBadgeEnabled, + DEFAULT_SERVICE_SETTINGS.isBadgeEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isBadgeEnabled, type: 'checkbox', }, isMediaBadgeEnabled: { label: intl.formatMessage(messages.enableMediaBadge), - value: service?.isMediaBadgeEnabled, + value: ifUndefined( + service?.isMediaBadgeEnabled, + DEFAULT_SERVICE_SETTINGS.isMediaBadgeEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isMediaBadgeEnabled, type: 'checkbox', }, trapLinkClicks: { label: intl.formatMessage(messages.trapLinkClicks), - value: service?.trapLinkClicks, + value: ifUndefined( + service?.trapLinkClicks, + DEFAULT_SERVICE_SETTINGS.trapLinkClicks, + ), default: DEFAULT_SERVICE_SETTINGS.trapLinkClicks, type: 'checkbox', }, isMuted: { label: intl.formatMessage(messages.enableAudio), - value: !service?.isMuted, + value: !ifUndefined( + service?.isMuted, + DEFAULT_SERVICE_SETTINGS.isMuted, + ), default: DEFAULT_SERVICE_SETTINGS.isMuted, type: 'checkbox', }, customIcon: { label: intl.formatMessage(messages.icon), value: service?.hasCustomUploadedIcon ? service?.icon : false, - default: null, type: 'file', }, isDarkModeEnabled: { label: intl.formatMessage(messages.enableDarkMode), - value: service?.isDarkModeEnabled, + value: ifUndefined( + service?.isDarkModeEnabled, + stores.settings.app.darkMode, + ), default: stores.settings.app.darkMode, type: 'checkbox', }, @@ -250,26 +277,29 @@ class EditServiceScreen extends Component { label: intl.formatMessage(messages.darkReaderBrightness), value: service?.darkReaderSettings ? service?.darkReaderSettings.brightness - : undefined, - default: 100, + : DEFAULT_APP_SETTINGS.darkReaderBrightness, + default: DEFAULT_APP_SETTINGS.darkReaderBrightness, }, darkReaderContrast: { label: intl.formatMessage(messages.darkReaderContrast), value: service?.darkReaderSettings ? service?.darkReaderSettings.contrast - : undefined, - default: 90, + : DEFAULT_APP_SETTINGS.darkReaderContrast, + default: DEFAULT_APP_SETTINGS.darkReaderContrast, }, darkReaderSepia: { label: intl.formatMessage(messages.darkReaderSepia), value: service?.darkReaderSettings ? service?.darkReaderSettings.sepia - : undefined, - default: 10, + : DEFAULT_APP_SETTINGS.darkReaderSepia, + default: DEFAULT_APP_SETTINGS.darkReaderSepia, }, isProgressbarEnabled: { label: intl.formatMessage(messages.enableProgressbar), - value: service?.isProgressbarEnabled, + value: ifUndefined( + service?.isProgressbarEnabled, + DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, + ), default: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, type: 'checkbox', }, @@ -282,7 +312,11 @@ class EditServiceScreen extends Component { userAgentPref: { label: intl.formatMessage(globalMessages.userAgentPref), placeholder: service?.defaultUserAgent, - value: service?.userAgentPref || '', + value: ifUndefined( + service?.userAgentPref, + DEFAULT_APP_SETTINGS.userAgentPref, + ), + default: DEFAULT_APP_SETTINGS.userAgentPref, }, }, }; @@ -325,20 +359,32 @@ class EditServiceScreen extends Component { } if (recipe.hasIndirectMessages) { - config.fields.isIndirectMessageBadgeEnabled = { - label: intl.formatMessage(messages.indirectMessages), - value: service?.isIndirectMessageBadgeEnabled, - default: DEFAULT_SERVICE_SETTINGS.hasIndirectMessages, - type: 'checkbox', + config.fields = { + ...config.fields, + isIndirectMessageBadgeEnabled: { + label: intl.formatMessage(messages.indirectMessages), + value: ifUndefined( + service?.isIndirectMessageBadgeEnabled, + DEFAULT_SERVICE_SETTINGS.hasIndirectMessages, + ), + default: DEFAULT_SERVICE_SETTINGS.hasIndirectMessages, + type: 'checkbox', + }, }; } if (recipe.allowFavoritesDelineationInUnreadCount) { - config.fields.onlyShowFavoritesInUnreadCount = { - label: intl.formatMessage(messages.onlyShowFavoritesInUnreadCount), - value: service?.onlyShowFavoritesInUnreadCount, - default: DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount, - type: 'checkbox', + config.fields = { + ...config.fields, + onlyShowFavoritesInUnreadCount: { + label: intl.formatMessage(messages.onlyShowFavoritesInUnreadCount), + value: ifUndefined( + service?.onlyShowFavoritesInUnreadCount, + DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount, + ), + default: DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount, + type: 'checkbox', + }, }; } @@ -353,36 +399,54 @@ class EditServiceScreen extends Component { stores.settings.proxy[service.id] || {} : {}; - config.fields.proxy = { - name: 'proxy', - label: 'proxy', - fields: { - isEnabled: { - label: intl.formatMessage(messages.enableProxy), - value: serviceProxyConfig.isEnabled, - default: DEFAULT_APP_SETTINGS.proxyFeatureEnabled, - type: 'checkbox', - }, - host: { - label: intl.formatMessage(messages.proxyHost), - value: serviceProxyConfig.host, - default: '', - }, - port: { - label: intl.formatMessage(messages.proxyPort), - value: serviceProxyConfig.port, - default: '', - }, - user: { - label: intl.formatMessage(messages.proxyUser), - value: serviceProxyConfig.user, - default: '', - }, - password: { - label: intl.formatMessage(messages.proxyPassword), - value: serviceProxyConfig.password, - default: '', - type: 'password', + config.fields = { + ...config.fields, + proxy: { + name: 'proxy', + label: 'proxy', + fields: { + isEnabled: { + label: intl.formatMessage(messages.enableProxy), + value: ifUndefined( + serviceProxyConfig.isEnabled, + DEFAULT_APP_SETTINGS.proxyFeatureEnabled, + ), + default: DEFAULT_APP_SETTINGS.proxyFeatureEnabled, + type: 'checkbox', + }, + host: { + label: intl.formatMessage(messages.proxyHost), + value: ifUndefined( + serviceProxyConfig.host, + DEFAULT_APP_SETTINGS.proxyHost, + ), + default: DEFAULT_APP_SETTINGS.proxyHost, + }, + port: { + label: intl.formatMessage(messages.proxyPort), + value: ifUndefined( + serviceProxyConfig.port, + DEFAULT_APP_SETTINGS.proxyPort, + ), + default: DEFAULT_APP_SETTINGS.proxyPort, + }, + user: { + label: intl.formatMessage(messages.proxyUser), + value: ifUndefined( + serviceProxyConfig.user, + DEFAULT_APP_SETTINGS.proxyUser, + ), + default: DEFAULT_APP_SETTINGS.proxyUser, + }, + password: { + label: intl.formatMessage(messages.proxyPassword), + value: ifUndefined( + serviceProxyConfig.password, + DEFAULT_APP_SETTINGS.proxyPassword, + ), + default: DEFAULT_APP_SETTINGS.proxyPassword, + type: 'password', + }, }, }, }; diff --git a/src/containers/settings/EditSettingsScreen.tsx b/src/containers/settings/EditSettingsScreen.tsx index 2dbd8d2be..5c82a7e34 100644 --- a/src/containers/settings/EditSettingsScreen.tsx +++ b/src/containers/settings/EditSettingsScreen.tsx @@ -20,8 +20,6 @@ import { TRANSLATOR_ENGINE_GOOGLE, LIBRETRANSLATE_TRANSLATOR_LANGUAGES, TODO_APPS, - DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED, - DEFAULT_IS_FEATURE_ENABLED_BY_USER, WAKE_UP_STRATEGIES, WAKE_UP_HIBERNATION_STRATEGIES, SPLIT_COLUMNS_MIN, @@ -39,6 +37,7 @@ import ErrorBoundary from '../../components/util/ErrorBoundary'; import globalMessages from '../../i18n/globalMessages'; import { importExportURL } from '../../api/apiBase'; +import { ifUndefined } from '../../jsUtils'; const debug = require('../../preload-safe-debug')('Ferdium:EditSettingsScreen'); @@ -542,31 +541,46 @@ class EditSettingsScreen extends Component { fields: { autoLaunchOnStart: { label: intl.formatMessage(messages.autoLaunchOnStart), - value: app.autoLaunchOnStart, + value: ifUndefined( + app.autoLaunchOnStart, + DEFAULT_APP_SETTINGS.autoLaunchOnStart, + ), default: DEFAULT_APP_SETTINGS.autoLaunchOnStart, type: 'checkbox', }, autoLaunchInBackground: { label: intl.formatMessage(messages.autoLaunchInBackground), - value: app.launchInBackground, + value: ifUndefined( + app.launchInBackground, + DEFAULT_APP_SETTINGS.autoLaunchInBackground, + ), default: DEFAULT_APP_SETTINGS.autoLaunchInBackground, type: 'checkbox', }, runInBackground: { label: intl.formatMessage(messages.runInBackground), - value: settings.all.app.runInBackground, + value: ifUndefined( + settings.all.app.runInBackground, + DEFAULT_APP_SETTINGS.runInBackground, + ), default: DEFAULT_APP_SETTINGS.runInBackground, type: 'checkbox', }, startMinimized: { label: intl.formatMessage(messages.startMinimized), - value: settings.all.app.startMinimized, + value: ifUndefined( + settings.all.app.startMinimized, + DEFAULT_APP_SETTINGS.startMinimized, + ), default: DEFAULT_APP_SETTINGS.startMinimized, type: 'checkbox', }, confirmOnQuit: { label: intl.formatMessage(messages.confirmOnQuit), - value: settings.all.app.confirmOnQuit, + value: ifUndefined( + settings.all.app.confirmOnQuit, + DEFAULT_APP_SETTINGS.confirmOnQuit, + ), default: DEFAULT_APP_SETTINGS.confirmOnQuit, type: 'checkbox', }, @@ -574,240 +588,359 @@ class EditSettingsScreen extends Component { label: intl.formatMessage( isMac ? messages.enableMenuBar : messages.enableSystemTray, ), - value: settings.all.app.enableSystemTray, + value: ifUndefined( + settings.all.app.enableSystemTray, + DEFAULT_APP_SETTINGS.enableSystemTray, + ), default: DEFAULT_APP_SETTINGS.enableSystemTray, type: 'checkbox', }, reloadAfterResume: { label: intl.formatMessage(messages.reloadAfterResume), - value: settings.all.app.reloadAfterResume, + value: ifUndefined( + settings.all.app.reloadAfterResume, + DEFAULT_APP_SETTINGS.reloadAfterResume, + ), default: DEFAULT_APP_SETTINGS.reloadAfterResume, type: 'checkbox', }, reloadAfterResumeTime: { label: intl.formatMessage(messages.reloadAfterResumeTime), - value: settings.all.app.reloadAfterResumeTime, + value: ifUndefined( + settings.all.app.reloadAfterResumeTime, + DEFAULT_APP_SETTINGS.reloadAfterResumeTime, + ), default: DEFAULT_APP_SETTINGS.reloadAfterResumeTime, }, minimizeToSystemTray: { label: intl.formatMessage(messages.minimizeToSystemTray), - value: settings.all.app.minimizeToSystemTray, + value: ifUndefined( + settings.all.app.minimizeToSystemTray, + DEFAULT_APP_SETTINGS.minimizeToSystemTray, + ), default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, type: 'checkbox', }, closeToSystemTray: { label: intl.formatMessage(messages.closeToSystemTray), - value: settings.all.app.closeToSystemTray, + value: ifUndefined( + settings.all.app.closeToSystemTray, + DEFAULT_APP_SETTINGS.closeToSystemTray, + ), default: DEFAULT_APP_SETTINGS.closeToSystemTray, type: 'checkbox', }, privateNotifications: { label: intl.formatMessage(messages.privateNotifications), - value: settings.all.app.privateNotifications, + value: ifUndefined( + settings.all.app.privateNotifications, + DEFAULT_APP_SETTINGS.privateNotifications, + ), default: DEFAULT_APP_SETTINGS.privateNotifications, type: 'checkbox', }, clipboardNotifications: { label: intl.formatMessage(messages.clipboardNotifications), - value: settings.all.app.clipboardNotifications, + value: ifUndefined( + settings.all.app.clipboardNotifications, + DEFAULT_APP_SETTINGS.clipboardNotifications, + ), default: DEFAULT_APP_SETTINGS.clipboardNotifications, type: 'checkbox', }, notifyTaskBarOnMessage: { label: intl.formatMessage(messages.notifyTaskBarOnMessage), - value: settings.all.app.notifyTaskBarOnMessage, + value: ifUndefined( + settings.all.app.notifyTaskBarOnMessage, + DEFAULT_APP_SETTINGS.notifyTaskBarOnMessage, + ), default: DEFAULT_APP_SETTINGS.notifyTaskBarOnMessage, type: 'checkbox', }, navigationBarBehaviour: { label: intl.formatMessage(messages.navigationBarBehaviour), - value: settings.all.app.navigationBarBehaviour, + value: ifUndefined( + settings.all.app.navigationBarBehaviour, + DEFAULT_APP_SETTINGS.navigationBarBehaviour, + ), default: DEFAULT_APP_SETTINGS.navigationBarBehaviour, options: navigationBarBehaviours, }, webRTCIPHandlingPolicy: { label: intl.formatMessage(messages.webRTCIPHandlingPolicy), - value: settings.all.app.webRTCIPHandlingPolicy, + value: ifUndefined( + settings.all.app.webRTCIPHandlingPolicy, + DEFAULT_APP_SETTINGS.webRTCIPHandlingPolicy, + ), default: DEFAULT_APP_SETTINGS.webRTCIPHandlingPolicy, options: webRTCIPHandlingPolicies, type: 'checkbox', }, searchEngine: { label: intl.formatMessage(messages.searchEngine), - value: settings.all.app.searchEngine, + value: ifUndefined( + settings.all.app.searchEngine, + DEFAULT_APP_SETTINGS.searchEngine, + ), default: DEFAULT_APP_SETTINGS.searchEngine, options: searchEngines, }, translatorEngine: { label: intl.formatMessage(messages.translatorEngine), - value: settings.all.app.translatorEngine, + value: ifUndefined( + settings.all.app.translatorEngine, + DEFAULT_APP_SETTINGS.translatorEngine, + ), default: DEFAULT_APP_SETTINGS.translatorEngine, options: translatorEngines, }, translatorLanguage: { label: intl.formatMessage(messages.translatorLanguage), - value: settings.all.app.translatorLanguage, + value: ifUndefined( + settings.all.app.translatorLanguage, + DEFAULT_APP_SETTINGS.translatorLanguage, + ), default: DEFAULT_APP_SETTINGS.translatorLanguage, options: translatorLanguages, }, sentry: { label: intl.formatMessage(messages.sentry), - value: settings.all.app.sentry, + value: ifUndefined( + settings.all.app.sentry, + DEFAULT_APP_SETTINGS.sentry, + ), default: DEFAULT_APP_SETTINGS.sentry, type: 'checkbox', }, hibernateOnStartup: { label: intl.formatMessage(messages.hibernateOnStartup), - value: settings.all.app.hibernateOnStartup, + value: ifUndefined( + settings.all.app.hibernateOnStartup, + DEFAULT_APP_SETTINGS.hibernateOnStartup, + ), default: DEFAULT_APP_SETTINGS.hibernateOnStartup, type: 'checkbox', }, hibernationStrategy: { label: intl.formatMessage(messages.hibernationStrategy), - value: settings.all.app.hibernationStrategy, - options: hibernationStrategies, + value: ifUndefined( + settings.all.app.hibernationStrategy, + DEFAULT_APP_SETTINGS.hibernationStrategy, + ), default: DEFAULT_APP_SETTINGS.hibernationStrategy, + options: hibernationStrategies, }, wakeUpStrategy: { label: intl.formatMessage(messages.wakeUpStrategy), - value: settings.all.app.wakeUpStrategy, - options: wakeUpStrategies, + value: ifUndefined( + settings.all.app.wakeUpStrategy, + DEFAULT_APP_SETTINGS.wakeUpStrategy, + ), default: DEFAULT_APP_SETTINGS.wakeUpStrategy, + options: wakeUpStrategies, }, wakeUpHibernationStrategy: { label: intl.formatMessage(messages.wakeUpHibernationStrategy), - value: settings.all.app.wakeUpHibernationStrategy, - options: wakeUpHibernationStrategies, + value: ifUndefined( + settings.all.app.wakeUpHibernationStrategy, + DEFAULT_APP_SETTINGS.wakeUpHibernationStrategy, + ), default: DEFAULT_APP_SETTINGS.wakeUpHibernationStrategy, + options: wakeUpHibernationStrategies, }, wakeUpHibernationSplay: { label: intl.formatMessage(messages.wakeUpHibernationSplay), - value: settings.all.app.wakeUpHibernationSplay, + value: ifUndefined( + settings.all.app.wakeUpHibernationSplay, + DEFAULT_APP_SETTINGS.wakeUpHibernationSplay, + ), default: DEFAULT_APP_SETTINGS.wakeUpHibernationSplay, type: 'checkbox', }, predefinedTodoServer: { label: intl.formatMessage(messages.predefinedTodoServer), - value: settings.all.app.predefinedTodoServer, + value: ifUndefined( + settings.all.app.predefinedTodoServer, + DEFAULT_APP_SETTINGS.predefinedTodoServer, + ), default: DEFAULT_APP_SETTINGS.predefinedTodoServer, options: todoApp, }, customTodoServer: { label: intl.formatMessage(messages.customTodoServer), - value: settings.all.app.customTodoServer, + value: ifUndefined( + settings.all.app.customTodoServer, + DEFAULT_APP_SETTINGS.customTodoServer, + ), default: DEFAULT_APP_SETTINGS.customTodoServer, }, lockingFeatureEnabled: { label: intl.formatMessage(messages.enableLock), - value: settings.all.app.lockingFeatureEnabled || false, + value: ifUndefined( + settings.all.app.lockingFeatureEnabled, + DEFAULT_APP_SETTINGS.lockingFeatureEnabled, + ), default: DEFAULT_APP_SETTINGS.lockingFeatureEnabled, type: 'checkbox', }, lockedPassword: { label: intl.formatMessage(messages.lockPassword), - value: lockedPassword, - default: '', + value: ifUndefined( + lockedPassword, + DEFAULT_APP_SETTINGS.lockedPassword, + ), + default: DEFAULT_APP_SETTINGS.lockedPassword, type: 'password', }, useTouchIdToUnlock: { label: intl.formatMessage(messages.useTouchIdToUnlock), - value: settings.all.app.useTouchIdToUnlock, + value: ifUndefined( + settings.all.app.useTouchIdToUnlock, + DEFAULT_APP_SETTINGS.useTouchIdToUnlock, + ), default: DEFAULT_APP_SETTINGS.useTouchIdToUnlock, type: 'checkbox', }, inactivityLock: { label: intl.formatMessage(messages.inactivityLock), - value: settings.all.app.inactivityLock, - default: 0, + value: ifUndefined( + settings.all.app.inactivityLock, + DEFAULT_APP_SETTINGS.inactivityLock, + ), + default: DEFAULT_APP_SETTINGS.inactivityLock, type: 'number', }, scheduledDNDEnabled: { label: intl.formatMessage(messages.scheduledDNDEnabled), - value: settings.all.app.scheduledDNDEnabled || false, + value: ifUndefined( + settings.all.app.scheduledDNDEnabled, + DEFAULT_APP_SETTINGS.scheduledDNDEnabled, + ), default: DEFAULT_APP_SETTINGS.scheduledDNDEnabled, type: 'checkbox', }, scheduledDNDStart: { label: intl.formatMessage(messages.scheduledDNDStart), - value: settings.all.app.scheduledDNDStart, - default: '17:00', + value: ifUndefined( + settings.all.app.scheduledDNDStart, + DEFAULT_APP_SETTINGS.scheduledDNDStart, + ), + default: DEFAULT_APP_SETTINGS.scheduledDNDStart, type: 'time', }, scheduledDNDEnd: { label: intl.formatMessage(messages.scheduledDNDEnd), - value: settings.all.app.scheduledDNDEnd, - default: '09:00', + value: ifUndefined( + settings.all.app.scheduledDNDEnd, + DEFAULT_APP_SETTINGS.scheduledDNDEnd, + ), + default: DEFAULT_APP_SETTINGS.scheduledDNDEnd, type: 'time', }, showDisabledServices: { label: intl.formatMessage(messages.showDisabledServices), - value: settings.all.app.showDisabledServices, + value: ifUndefined( + settings.all.app.showDisabledServices, + DEFAULT_APP_SETTINGS.showDisabledServices, + ), default: DEFAULT_APP_SETTINGS.showDisabledServices, type: 'checkbox', }, showServiceName: { label: intl.formatMessage(messages.showServiceName), - value: settings.all.app.showServiceName, + value: ifUndefined( + settings.all.app.showServiceName, + DEFAULT_APP_SETTINGS.showServiceName, + ), default: DEFAULT_APP_SETTINGS.showServiceName, - type: 'checkbox', }, showMessageBadgeWhenMuted: { label: intl.formatMessage(messages.showMessageBadgeWhenMuted), - value: settings.all.app.showMessageBadgeWhenMuted, + value: ifUndefined( + settings.all.app.showMessageBadgeWhenMuted, + DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, + ), default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, type: 'checkbox', }, showDragArea: { label: intl.formatMessage(messages.showDragArea), - value: settings.all.app.showDragArea, + value: ifUndefined( + settings.all.app.showDragArea, + DEFAULT_APP_SETTINGS.showDragArea, + ), default: DEFAULT_APP_SETTINGS.showDragArea, type: 'checkbox', }, enableSpellchecking: { label: intl.formatMessage(messages.enableSpellchecking), - value: settings.all.app.enableSpellchecking, + value: ifUndefined( + settings.all.app.enableSpellchecking, + DEFAULT_APP_SETTINGS.enableSpellchecking, + ), default: DEFAULT_APP_SETTINGS.enableSpellchecking, type: 'checkbox', }, enableTranslator: { label: intl.formatMessage(messages.enableTranslator), - value: settings.all.app.enableTranslator, + value: ifUndefined( + settings.all.app.enableTranslator, + DEFAULT_APP_SETTINGS.enableTranslator, + ), default: DEFAULT_APP_SETTINGS.enableTranslator, type: 'checkbox', }, spellcheckerLanguage: { label: intl.formatMessage(globalMessages.spellcheckerLanguage), - value: settings.all.app.spellcheckerLanguage, - options: spellcheckingLanguages, + value: ifUndefined( + settings.all.app.spellcheckerLanguage, + DEFAULT_APP_SETTINGS.spellcheckerLanguage, + ), default: DEFAULT_APP_SETTINGS.spellcheckerLanguage, + options: spellcheckingLanguages, }, userAgentPref: { label: intl.formatMessage(globalMessages.userAgentPref), - value: settings.all.app.userAgentPref, + value: ifUndefined( + settings.all.app.userAgentPref, + DEFAULT_APP_SETTINGS.userAgentPref, + ), default: DEFAULT_APP_SETTINGS.userAgentPref, placeholder: defaultUserAgent(), }, darkMode: { label: intl.formatMessage(messages.darkMode), - value: settings.all.app.darkMode, + value: ifUndefined( + settings.all.app.darkMode, + DEFAULT_APP_SETTINGS.darkMode, + ), default: DEFAULT_APP_SETTINGS.darkMode, type: 'checkbox', }, adaptableDarkMode: { label: intl.formatMessage(messages.adaptableDarkMode), - value: settings.all.app.adaptableDarkMode, + value: ifUndefined( + settings.all.app.adaptableDarkMode, + DEFAULT_APP_SETTINGS.adaptableDarkMode, + ), default: DEFAULT_APP_SETTINGS.adaptableDarkMode, type: 'checkbox', }, universalDarkMode: { label: intl.formatMessage(messages.universalDarkMode), - value: settings.all.app.universalDarkMode, + value: ifUndefined( + settings.all.app.universalDarkMode, + DEFAULT_APP_SETTINGS.universalDarkMode, + ), default: DEFAULT_APP_SETTINGS.universalDarkMode, type: 'checkbox', }, splitMode: { label: intl.formatMessage(messages.splitMode), - value: settings.all.app.splitMode, + value: ifUndefined( + settings.all.app.splitMode, + DEFAULT_APP_SETTINGS.splitMode, + ), default: DEFAULT_APP_SETTINGS.splitMode, type: 'checkbox', }, @@ -815,129 +948,192 @@ class EditSettingsScreen extends Component { label: `${intl.formatMessage( messages.splitColumns, )} (${SPLIT_COLUMNS_MIN}-${SPLIT_COLUMNS_MAX})`, - value: settings.all.app.splitColumns, + value: ifUndefined( + settings.all.app.splitColumns, + DEFAULT_APP_SETTINGS.splitColumns, + ), default: DEFAULT_APP_SETTINGS.splitColumns, }, serviceRibbonWidth: { label: intl.formatMessage(messages.serviceRibbonWidth), - value: settings.all.app.serviceRibbonWidth, + value: ifUndefined( + settings.all.app.serviceRibbonWidth, + DEFAULT_APP_SETTINGS.serviceRibbonWidth, + ), default: DEFAULT_APP_SETTINGS.serviceRibbonWidth, options: sidebarWidth, }, sidebarServicesLocation: { label: intl.formatMessage(messages.sidebarServicesLocation), - value: settings.all.app.sidebarServicesLocation, + value: ifUndefined( + settings.all.app.sidebarServicesLocation, + DEFAULT_APP_SETTINGS.sidebarServicesLocation, + ), default: DEFAULT_APP_SETTINGS.sidebarServicesLocation, options: sidebarServicesLocation, }, iconSize: { label: intl.formatMessage(messages.iconSize), - value: settings.all.app.iconSize, + value: ifUndefined( + settings.all.app.iconSize, + DEFAULT_APP_SETTINGS.iconSize, + ), default: DEFAULT_APP_SETTINGS.iconSize, options: iconSizes, }, enableLongPressServiceHint: { label: intl.formatMessage(messages.enableLongPressServiceHint), - value: settings.all.app.enableLongPressServiceHint, + value: ifUndefined( + settings.all.app.enableLongPressServiceHint, + DEFAULT_APP_SETTINGS.enableLongPressServiceHint, + ), default: DEFAULT_APP_SETTINGS.enableLongPressServiceHint, type: 'checkbox', }, useHorizontalStyle: { label: intl.formatMessage(messages.useHorizontalStyle), - value: settings.all.app.useHorizontalStyle, + value: ifUndefined( + settings.all.app.useHorizontalStyle, + DEFAULT_APP_SETTINGS.useHorizontalStyle, + ), default: DEFAULT_APP_SETTINGS.useHorizontalStyle, type: 'checkbox', }, hideCollapseButton: { label: intl.formatMessage(messages.hideCollapseButton), - value: settings.all.app.hideCollapseButton, + value: ifUndefined( + settings.all.app.hideCollapseButton, + DEFAULT_APP_SETTINGS.hideCollapseButton, + ), default: DEFAULT_APP_SETTINGS.hideCollapseButton, type: 'checkbox', }, hideRecipesButton: { label: intl.formatMessage(messages.hideRecipesButton), - value: settings.all.app.hideRecipesButton, + value: ifUndefined( + settings.all.app.hideRecipesButton, + DEFAULT_APP_SETTINGS.hideRecipesButton, + ), default: DEFAULT_APP_SETTINGS.hideRecipesButton, type: 'checkbox', }, hideSplitModeButton: { label: intl.formatMessage(messages.hideSplitModeButton), - value: settings.all.app.hideSplitModeButton, + value: ifUndefined( + settings.all.app.hideSplitModeButton, + DEFAULT_APP_SETTINGS.hideSplitModeButton, + ), default: DEFAULT_APP_SETTINGS.hideSplitModeButton, type: 'checkbox', }, useGrayscaleServices: { label: intl.formatMessage(messages.useGrayscaleServices), - value: settings.all.app.useGrayscaleServices, + value: ifUndefined( + settings.all.app.useGrayscaleServices, + DEFAULT_APP_SETTINGS.useGrayscaleServices, + ), default: DEFAULT_APP_SETTINGS.useGrayscaleServices, type: 'checkbox', }, grayscaleServicesDim: { label: intl.formatMessage(messages.grayscaleServicesDim), - value: settings.all.app.grayscaleServicesDim, + value: ifUndefined( + settings.all.app.grayscaleServicesDim, + DEFAULT_APP_SETTINGS.grayscaleServicesDim, + ), default: DEFAULT_APP_SETTINGS.grayscaleServicesDim, }, hideWorkspacesButton: { label: intl.formatMessage(messages.hideWorkspacesButton), - value: settings.all.app.hideWorkspacesButton, + value: ifUndefined( + settings.all.app.hideWorkspacesButton, + DEFAULT_APP_SETTINGS.hideWorkspacesButton, + ), default: DEFAULT_APP_SETTINGS.hideWorkspacesButton, type: 'checkbox', }, hideNotificationsButton: { label: intl.formatMessage(messages.hideNotificationsButton), - value: settings.all.app.hideNotificationsButton, + value: ifUndefined( + settings.all.app.hideNotificationsButton, + DEFAULT_APP_SETTINGS.hideNotificationsButton, + ), default: DEFAULT_APP_SETTINGS.hideNotificationsButton, type: 'checkbox', }, hideSettingsButton: { label: intl.formatMessage(messages.hideSettingsButton), - value: settings.all.app.hideSettingsButton, + value: ifUndefined( + settings.all.app.hideSettingsButton, + DEFAULT_APP_SETTINGS.hideSettingsButton, + ), default: DEFAULT_APP_SETTINGS.hideSettingsButton, type: 'checkbox', }, alwaysShowWorkspaces: { label: intl.formatMessage(messages.alwaysShowWorkspaces), - value: settings.all.app.alwaysShowWorkspaces, + value: ifUndefined( + settings.all.app.alwaysShowWorkspaces, + DEFAULT_APP_SETTINGS.alwaysShowWorkspaces, + ), default: DEFAULT_APP_SETTINGS.alwaysShowWorkspaces, type: 'checkbox', }, accentColor: { label: intl.formatMessage(messages.accentColor), - value: settings.all.app.accentColor, + value: ifUndefined( + settings.all.app.accentColor, + DEFAULT_APP_SETTINGS.accentColor, + ), default: DEFAULT_APP_SETTINGS.accentColor, }, progressbarAccentColor: { label: intl.formatMessage(messages.progressbarAccentColor), - value: settings.all.app.progressbarAccentColor, + value: ifUndefined( + settings.all.app.progressbarAccentColor, + DEFAULT_APP_SETTINGS.progressbarAccentColor, + ), default: DEFAULT_APP_SETTINGS.progressbarAccentColor, }, enableGPUAcceleration: { label: intl.formatMessage(messages.enableGPUAcceleration), - value: settings.all.app.enableGPUAcceleration, + value: ifUndefined( + settings.all.app.enableGPUAcceleration, + DEFAULT_APP_SETTINGS.enableGPUAcceleration, + ), default: DEFAULT_APP_SETTINGS.enableGPUAcceleration, type: 'checkbox', }, enableGlobalHideShortcut: { label: intl.formatMessage(messages.enableGlobalHideShortcut), - value: settings.all.app.enableGlobalHideShortcut, + value: ifUndefined( + settings.all.app.enableGlobalHideShortcut, + DEFAULT_APP_SETTINGS.enableGlobalHideShortcut, + ), default: DEFAULT_APP_SETTINGS.enableGlobalHideShortcut, type: 'checkbox', }, locale: { label: intl.formatMessage(messages.language), - value: app.locale, - options: locales, + value: ifUndefined(app.locale, DEFAULT_APP_SETTINGS.locale), default: DEFAULT_APP_SETTINGS.locale, + options: locales, }, beta: { label: intl.formatMessage(messages.beta), - value: user.data.beta, + value: ifUndefined( + user.data.beta, + DEFAULT_APP_SETTINGS.beta, + ), default: DEFAULT_APP_SETTINGS.beta, type: 'checkbox', }, automaticUpdates: { label: intl.formatMessage(messages.automaticUpdates), - value: settings.app.automaticUpdates, + value: ifUndefined( + settings.app.automaticUpdates, + DEFAULT_APP_SETTINGS.automaticUpdates, + ), default: DEFAULT_APP_SETTINGS.automaticUpdates, type: 'checkbox', }, @@ -955,8 +1151,11 @@ class EditSettingsScreen extends Component { if (workspaces.isFeatureActive) { config.fields.keepAllWorkspacesLoaded = { label: intl.formatMessage(messages.keepAllWorkspacesLoaded), - value: workspaces.settings.keepAllWorkspacesLoaded, - default: DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED, + value: ifUndefined( + workspaces.settings.keepAllWorkspacesLoaded, + DEFAULT_APP_SETTINGS.keepAllWorkspacesLoaded, + ), + default: DEFAULT_APP_SETTINGS.keepAllWorkspacesLoaded, type: 'checkbox', }; } @@ -964,8 +1163,11 @@ class EditSettingsScreen extends Component { if (todos.isFeatureActive) { config.fields.enableTodos = { label: intl.formatMessage(messages.enableTodos), - value: todos.settings.isFeatureEnabledByUser, - default: DEFAULT_IS_FEATURE_ENABLED_BY_USER, + value: ifUndefined( + todos.settings.isFeatureEnabledByUser, + DEFAULT_APP_SETTINGS.isFeatureEnabledByUser, + ), + default: DEFAULT_APP_SETTINGS.isFeatureEnabledByUser, type: 'checkbox', }; } -- cgit v1.2.3-54-g00ecf