From baf7d60af40e9cc3ce5403c5e109331098d5e1d6 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 7 Dec 2018 20:25:42 +0100 Subject: feat(Service): Add option to change spellchecking language by service --- src/containers/settings/EditServiceScreen.js | 24 +++++++++++++++++++++++- src/containers/settings/EditSettingsScreen.js | 18 ++++++------------ 2 files changed, 29 insertions(+), 13 deletions(-) (limited to 'src/containers/settings') diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 639e8b070..f4915f68b 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -14,9 +14,12 @@ import { gaPage } from '../../lib/analytics'; import ServiceError from '../../components/settings/services/ServiceError'; import EditServiceForm from '../../components/settings/services/EditServiceForm'; import { required, url, oneRequired } from '../../helpers/validation-helpers'; +import { getSelectOptions } from '../../helpers/i18n-helpers'; import { config as proxyFeature } from '../../features/serviceProxy'; +import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; + const messages = defineMessages({ name: { id: 'settings.service.form.name', @@ -74,6 +77,14 @@ const messages = defineMessages({ id: 'settings.service.form.proxy.password', defaultMessage: '!!!Password', }, + spellcheckerLanguage: { + id: 'settings.service.form.spellcheckerLanguage', + defaultMessage: '!!!Spell checking Language', + }, + spellcheckerSystemDefault: { + id: 'settings.service.form.spellcheckerLanguage.default', + defaultMessage: '!!!Use System Default ({default})', + }, }); export default @inject('stores', 'actions') @observer class EditServiceScreen extends Component { @@ -101,6 +112,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex } prepareForm(recipe, service, proxy) { + const spellcheckerLanguage = getSelectOptions({ + locales: SPELLCHECKER_LOCALES, + resetToDefaultText: this.context.intl.formatMessage(messages.spellcheckerSystemDefault, { default: SPELLCHECKER_LOCALES[this.props.stores.settings.app.spellcheckerLanguage] }), + }); + const { intl } = this.context; const config = { fields: { @@ -138,7 +154,13 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex isDarkModeEnabled: { label: intl.formatMessage(messages.enableDarkMode), value: service.isDarkModeEnabled, - default: this.props.stores.settings.all.app.darkMode, + default: this.props.stores.settings.app.darkMode, + }, + spellcheckerLanguage: { + label: intl.formatMessage(messages.spellcheckerLanguage), + value: service.spellcheckerLanguage, + options: spellcheckerLanguage, + disabled: !this.props.stores.settings.app.enableSpellchecking, }, }, }; diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index ea1d319d9..350bd9f8a 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -12,6 +12,8 @@ import { gaPage } from '../../lib/analytics'; import { DEFAULT_APP_SETTINGS } from '../../config'; import { config as spellcheckerConfig } from '../../features/spellchecker'; +import { getSelectOptions } from '../../helpers/i18n-helpers'; + import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; @@ -116,20 +118,12 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e const { app, settings, user } = this.props.stores; const { intl } = this.context; - const locales = []; - Object.keys(APP_LOCALES).sort(Intl.Collator().compare).forEach((key) => { - locales.push({ - value: key, - label: APP_LOCALES[key], - }); + const locales = getSelectOptions({ + locales: APP_LOCALES, }); - const spellcheckingLanguages = []; - Object.keys(SPELLCHECKER_LOCALES).sort(Intl.Collator().compare).forEach((key) => { - spellcheckingLanguages.push({ - value: key, - label: SPELLCHECKER_LOCALES[key], - }); + const spellcheckingLanguages = getSelectOptions({ + locales: SPELLCHECKER_LOCALES, }); const config = { -- cgit v1.2.3-70-g09d2