diff options
author | Ricardo Cino <ricardo@cino.io> | 2022-11-28 16:53:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-28 15:53:04 +0000 |
commit | d5d685aaf4e796faf612c6d0fea0f0cc9ea49614 (patch) | |
tree | 72f027dc2d57f00c366d61570fd76ed6a0fcb27a /src/containers/settings/EditServiceScreen.tsx | |
parent | 6.2.1-nightly.52 [skip ci] (diff) | |
download | ferdium-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.tsx | 180 |
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'; | |||
17 | import globalMessages from '../../i18n/globalMessages'; | 17 | import globalMessages from '../../i18n/globalMessages'; |
18 | import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; | 18 | import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; |
19 | import withParams from '../../components/util/WithParams'; | 19 | import withParams from '../../components/util/WithParams'; |
20 | import { ifUndefined } from '../../jsUtils'; | ||
20 | 21 | ||
21 | const messages = defineMessages({ | 22 | const 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 | }; |