aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers/settings/EditServiceScreen.tsx
diff options
context:
space:
mode:
authorLibravatar Ricardo Cino <ricardo@cino.io>2022-11-28 16:53:04 +0100
committerLibravatar GitHub <noreply@github.com>2022-11-28 15:53:04 +0000
commitd5d685aaf4e796faf612c6d0fea0f0cc9ea49614 (patch)
tree72f027dc2d57f00c366d61570fd76ed6a0fcb27a /src/containers/settings/EditServiceScreen.tsx
parent6.2.1-nightly.52 [skip ci] (diff)
downloadferdium-app-d5d685aaf4e796faf612c6d0fea0f0cc9ea49614.tar.gz
ferdium-app-d5d685aaf4e796faf612c6d0fea0f0cc9ea49614.tar.zst
ferdium-app-d5d685aaf4e796faf612c6d0fea0f0cc9ea49614.zip
fix: ensure default values are working for the all fields in all settings screens (#750)
Co-authored-by: Vijay A <vraravam@users.noreply.github.com>
Diffstat (limited to 'src/containers/settings/EditServiceScreen.tsx')
-rw-r--r--src/containers/settings/EditServiceScreen.tsx180
1 files changed, 122 insertions, 58 deletions
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';
17import globalMessages from '../../i18n/globalMessages'; 17import globalMessages from '../../i18n/globalMessages';
18import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; 18import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config';
19import withParams from '../../components/util/WithParams'; 19import withParams from '../../components/util/WithParams';
20import { ifUndefined } from '../../jsUtils';
20 21
21const messages = defineMessages({ 22const messages = defineMessages({
22 name: { 23 name: {
@@ -188,61 +189,87 @@ class EditServiceScreen extends Component<IProps> {
188 }, 189 },
189 isEnabled: { 190 isEnabled: {
190 label: intl.formatMessage(messages.enableService), 191 label: intl.formatMessage(messages.enableService),
191 value: service?.isEnabled, 192 value: ifUndefined<boolean>(
193 service?.isEnabled,
194 DEFAULT_SERVICE_SETTINGS.isEnabled,
195 ),
192 default: DEFAULT_SERVICE_SETTINGS.isEnabled, 196 default: DEFAULT_SERVICE_SETTINGS.isEnabled,
193 type: 'checkbox', 197 type: 'checkbox',
194 }, 198 },
195 isHibernationEnabled: { 199 isHibernationEnabled: {
196 label: intl.formatMessage(messages.enableHibernation), 200 label: intl.formatMessage(messages.enableHibernation),
197 value: service?.isHibernationEnabled, 201 value: ifUndefined<boolean>(
202 service?.isHibernationEnabled,
203 DEFAULT_SERVICE_SETTINGS.isHibernationEnabled,
204 ),
198 default: DEFAULT_SERVICE_SETTINGS.isHibernationEnabled, 205 default: DEFAULT_SERVICE_SETTINGS.isHibernationEnabled,
199 type: 'checkbox', 206 type: 'checkbox',
200 }, 207 },
201 isWakeUpEnabled: { 208 isWakeUpEnabled: {
202 label: intl.formatMessage(messages.enableWakeUp), 209 label: intl.formatMessage(messages.enableWakeUp),
203 value: service?.isWakeUpEnabled, 210 value: ifUndefined<boolean>(
211 service?.isWakeUpEnabled,
212 DEFAULT_SERVICE_SETTINGS.isWakeUpEnabled,
213 ),
204 default: DEFAULT_SERVICE_SETTINGS.isWakeUpEnabled, 214 default: DEFAULT_SERVICE_SETTINGS.isWakeUpEnabled,
205 type: 'checkbox', 215 type: 'checkbox',
206 }, 216 },
207 isNotificationEnabled: { 217 isNotificationEnabled: {
208 label: intl.formatMessage(messages.enableNotification), 218 label: intl.formatMessage(messages.enableNotification),
209 value: service?.isNotificationEnabled, 219 value: ifUndefined<boolean>(
220 service?.isNotificationEnabled,
221 DEFAULT_SERVICE_SETTINGS.isNotificationEnabled,
222 ),
210 default: DEFAULT_SERVICE_SETTINGS.isNotificationEnabled, 223 default: DEFAULT_SERVICE_SETTINGS.isNotificationEnabled,
211 type: 'checkbox', 224 type: 'checkbox',
212 }, 225 },
213 isBadgeEnabled: { 226 isBadgeEnabled: {
214 label: intl.formatMessage(messages.enableBadge), 227 label: intl.formatMessage(messages.enableBadge),
215 value: service?.isBadgeEnabled, 228 value: ifUndefined<boolean>(
229 service?.isBadgeEnabled,
230 DEFAULT_SERVICE_SETTINGS.isBadgeEnabled,
231 ),
216 default: DEFAULT_SERVICE_SETTINGS.isBadgeEnabled, 232 default: DEFAULT_SERVICE_SETTINGS.isBadgeEnabled,
217 type: 'checkbox', 233 type: 'checkbox',
218 }, 234 },
219 isMediaBadgeEnabled: { 235 isMediaBadgeEnabled: {
220 label: intl.formatMessage(messages.enableMediaBadge), 236 label: intl.formatMessage(messages.enableMediaBadge),
221 value: service?.isMediaBadgeEnabled, 237 value: ifUndefined<boolean>(
238 service?.isMediaBadgeEnabled,
239 DEFAULT_SERVICE_SETTINGS.isMediaBadgeEnabled,
240 ),
222 default: DEFAULT_SERVICE_SETTINGS.isMediaBadgeEnabled, 241 default: DEFAULT_SERVICE_SETTINGS.isMediaBadgeEnabled,
223 type: 'checkbox', 242 type: 'checkbox',
224 }, 243 },
225 trapLinkClicks: { 244 trapLinkClicks: {
226 label: intl.formatMessage(messages.trapLinkClicks), 245 label: intl.formatMessage(messages.trapLinkClicks),
227 value: service?.trapLinkClicks, 246 value: ifUndefined<boolean>(
247 service?.trapLinkClicks,
248 DEFAULT_SERVICE_SETTINGS.trapLinkClicks,
249 ),
228 default: DEFAULT_SERVICE_SETTINGS.trapLinkClicks, 250 default: DEFAULT_SERVICE_SETTINGS.trapLinkClicks,
229 type: 'checkbox', 251 type: 'checkbox',
230 }, 252 },
231 isMuted: { 253 isMuted: {
232 label: intl.formatMessage(messages.enableAudio), 254 label: intl.formatMessage(messages.enableAudio),
233 value: !service?.isMuted, 255 value: !ifUndefined<boolean>(
256 service?.isMuted,
257 DEFAULT_SERVICE_SETTINGS.isMuted,
258 ),
234 default: DEFAULT_SERVICE_SETTINGS.isMuted, 259 default: DEFAULT_SERVICE_SETTINGS.isMuted,
235 type: 'checkbox', 260 type: 'checkbox',
236 }, 261 },
237 customIcon: { 262 customIcon: {
238 label: intl.formatMessage(messages.icon), 263 label: intl.formatMessage(messages.icon),
239 value: service?.hasCustomUploadedIcon ? service?.icon : false, 264 value: service?.hasCustomUploadedIcon ? service?.icon : false,
240 default: null,
241 type: 'file', 265 type: 'file',
242 }, 266 },
243 isDarkModeEnabled: { 267 isDarkModeEnabled: {
244 label: intl.formatMessage(messages.enableDarkMode), 268 label: intl.formatMessage(messages.enableDarkMode),
245 value: service?.isDarkModeEnabled, 269 value: ifUndefined<boolean>(
270 service?.isDarkModeEnabled,
271 stores.settings.app.darkMode,
272 ),
246 default: stores.settings.app.darkMode, 273 default: stores.settings.app.darkMode,
247 type: 'checkbox', 274 type: 'checkbox',
248 }, 275 },
@@ -250,26 +277,29 @@ class EditServiceScreen extends Component<IProps> {
250 label: intl.formatMessage(messages.darkReaderBrightness), 277 label: intl.formatMessage(messages.darkReaderBrightness),
251 value: service?.darkReaderSettings 278 value: service?.darkReaderSettings
252 ? service?.darkReaderSettings.brightness 279 ? service?.darkReaderSettings.brightness
253 : undefined, 280 : DEFAULT_APP_SETTINGS.darkReaderBrightness,
254 default: 100, 281 default: DEFAULT_APP_SETTINGS.darkReaderBrightness,
255 }, 282 },
256 darkReaderContrast: { 283 darkReaderContrast: {
257 label: intl.formatMessage(messages.darkReaderContrast), 284 label: intl.formatMessage(messages.darkReaderContrast),
258 value: service?.darkReaderSettings 285 value: service?.darkReaderSettings
259 ? service?.darkReaderSettings.contrast 286 ? service?.darkReaderSettings.contrast
260 : undefined, 287 : DEFAULT_APP_SETTINGS.darkReaderContrast,
261 default: 90, 288 default: DEFAULT_APP_SETTINGS.darkReaderContrast,
262 }, 289 },
263 darkReaderSepia: { 290 darkReaderSepia: {
264 label: intl.formatMessage(messages.darkReaderSepia), 291 label: intl.formatMessage(messages.darkReaderSepia),
265 value: service?.darkReaderSettings 292 value: service?.darkReaderSettings
266 ? service?.darkReaderSettings.sepia 293 ? service?.darkReaderSettings.sepia
267 : undefined, 294 : DEFAULT_APP_SETTINGS.darkReaderSepia,
268 default: 10, 295 default: DEFAULT_APP_SETTINGS.darkReaderSepia,
269 }, 296 },
270 isProgressbarEnabled: { 297 isProgressbarEnabled: {
271 label: intl.formatMessage(messages.enableProgressbar), 298 label: intl.formatMessage(messages.enableProgressbar),
272 value: service?.isProgressbarEnabled, 299 value: ifUndefined<boolean>(
300 service?.isProgressbarEnabled,
301 DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled,
302 ),
273 default: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, 303 default: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled,
274 type: 'checkbox', 304 type: 'checkbox',
275 }, 305 },
@@ -282,7 +312,11 @@ class EditServiceScreen extends Component<IProps> {
282 userAgentPref: { 312 userAgentPref: {
283 label: intl.formatMessage(globalMessages.userAgentPref), 313 label: intl.formatMessage(globalMessages.userAgentPref),
284 placeholder: service?.defaultUserAgent, 314 placeholder: service?.defaultUserAgent,
285 value: service?.userAgentPref || '', 315 value: ifUndefined<string>(
316 service?.userAgentPref,
317 DEFAULT_APP_SETTINGS.userAgentPref,
318 ),
319 default: DEFAULT_APP_SETTINGS.userAgentPref,
286 }, 320 },
287 }, 321 },
288 }; 322 };
@@ -325,20 +359,32 @@ class EditServiceScreen extends Component<IProps> {
325 } 359 }
326 360
327 if (recipe.hasIndirectMessages) { 361 if (recipe.hasIndirectMessages) {
328 config.fields.isIndirectMessageBadgeEnabled = { 362 config.fields = {
329 label: intl.formatMessage(messages.indirectMessages), 363 ...config.fields,
330 value: service?.isIndirectMessageBadgeEnabled, 364 isIndirectMessageBadgeEnabled: {
331 default: DEFAULT_SERVICE_SETTINGS.hasIndirectMessages, 365 label: intl.formatMessage(messages.indirectMessages),
332 type: 'checkbox', 366 value: ifUndefined<boolean>(
367 service?.isIndirectMessageBadgeEnabled,
368 DEFAULT_SERVICE_SETTINGS.hasIndirectMessages,
369 ),
370 default: DEFAULT_SERVICE_SETTINGS.hasIndirectMessages,
371 type: 'checkbox',
372 },
333 }; 373 };
334 } 374 }
335 375
336 if (recipe.allowFavoritesDelineationInUnreadCount) { 376 if (recipe.allowFavoritesDelineationInUnreadCount) {
337 config.fields.onlyShowFavoritesInUnreadCount = { 377 config.fields = {
338 label: intl.formatMessage(messages.onlyShowFavoritesInUnreadCount), 378 ...config.fields,
339 value: service?.onlyShowFavoritesInUnreadCount, 379 onlyShowFavoritesInUnreadCount: {
340 default: DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount, 380 label: intl.formatMessage(messages.onlyShowFavoritesInUnreadCount),
341 type: 'checkbox', 381 value: ifUndefined<boolean>(
382 service?.onlyShowFavoritesInUnreadCount,
383 DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount,
384 ),
385 default: DEFAULT_APP_SETTINGS.onlyShowFavoritesInUnreadCount,
386 type: 'checkbox',
387 },
342 }; 388 };
343 } 389 }
344 390
@@ -353,36 +399,54 @@ class EditServiceScreen extends Component<IProps> {
353 stores.settings.proxy[service.id] || {} 399 stores.settings.proxy[service.id] || {}
354 : {}; 400 : {};
355 401
356 config.fields.proxy = { 402 config.fields = {
357 name: 'proxy', 403 ...config.fields,
358 label: 'proxy', 404 proxy: {
359 fields: { 405 name: 'proxy',
360 isEnabled: { 406 label: 'proxy',
361 label: intl.formatMessage(messages.enableProxy), 407 fields: {
362 value: serviceProxyConfig.isEnabled, 408 isEnabled: {
363 default: DEFAULT_APP_SETTINGS.proxyFeatureEnabled, 409 label: intl.formatMessage(messages.enableProxy),
364 type: 'checkbox', 410 value: ifUndefined<boolean>(
365 }, 411 serviceProxyConfig.isEnabled,
366 host: { 412 DEFAULT_APP_SETTINGS.proxyFeatureEnabled,
367 label: intl.formatMessage(messages.proxyHost), 413 ),
368 value: serviceProxyConfig.host, 414 default: DEFAULT_APP_SETTINGS.proxyFeatureEnabled,
369 default: '', 415 type: 'checkbox',
370 }, 416 },
371 port: { 417 host: {
372 label: intl.formatMessage(messages.proxyPort), 418 label: intl.formatMessage(messages.proxyHost),
373 value: serviceProxyConfig.port, 419 value: ifUndefined<string>(
374 default: '', 420 serviceProxyConfig.host,
375 }, 421 DEFAULT_APP_SETTINGS.proxyHost,
376 user: { 422 ),
377 label: intl.formatMessage(messages.proxyUser), 423 default: DEFAULT_APP_SETTINGS.proxyHost,
378 value: serviceProxyConfig.user, 424 },
379 default: '', 425 port: {
380 }, 426 label: intl.formatMessage(messages.proxyPort),
381 password: { 427 value: ifUndefined<number>(
382 label: intl.formatMessage(messages.proxyPassword), 428 serviceProxyConfig.port,
383 value: serviceProxyConfig.password, 429 DEFAULT_APP_SETTINGS.proxyPort,
384 default: '', 430 ),
385 type: 'password', 431 default: DEFAULT_APP_SETTINGS.proxyPort,
432 },
433 user: {
434 label: intl.formatMessage(messages.proxyUser),
435 value: ifUndefined<string>(
436 serviceProxyConfig.user,
437 DEFAULT_APP_SETTINGS.proxyUser,
438 ),
439 default: DEFAULT_APP_SETTINGS.proxyUser,
440 },
441 password: {
442 label: intl.formatMessage(messages.proxyPassword),
443 value: ifUndefined<string>(
444 serviceProxyConfig.password,
445 DEFAULT_APP_SETTINGS.proxyPassword,
446 ),
447 default: DEFAULT_APP_SETTINGS.proxyPassword,
448 type: 'password',
449 },
386 }, 450 },
387 }, 451 },
388 }; 452 };