aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers/settings/EditServiceScreen.js
diff options
context:
space:
mode:
authorLibravatar Amine Mouafik <amine@mouafik.fr>2019-05-12 20:00:41 +0700
committerLibravatar Amine Mouafik <amine@mouafik.fr>2019-05-12 20:00:41 +0700
commitd8a1d5f9151cc31f4c2b5c0096a35e49b2c74d61 (patch)
tree3974d449d8ef389fc61bf880ae758b5debc22a80 /src/containers/settings/EditServiceScreen.js
parentUse dark background in SVG logo (diff)
parentUpdate CHANGELOG.md (diff)
downloadferdium-app-d8a1d5f9151cc31f4c2b5c0096a35e49b2c74d61.tar.gz
ferdium-app-d8a1d5f9151cc31f4c2b5c0096a35e49b2c74d61.tar.zst
ferdium-app-d8a1d5f9151cc31f4c2b5c0096a35e49b2c74d61.zip
Merge tag 'v5.1.0'
# Conflicts: # README.md # src/components/layout/AppLayout.js
Diffstat (limited to 'src/containers/settings/EditServiceScreen.js')
-rw-r--r--src/containers/settings/EditServiceScreen.js45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index b46908344..870ca4ecd 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -9,7 +9,6 @@ import ServicesStore from '../../stores/ServicesStore';
9import SettingsStore from '../../stores/SettingsStore'; 9import SettingsStore from '../../stores/SettingsStore';
10import FeaturesStore from '../../stores/FeaturesStore'; 10import FeaturesStore from '../../stores/FeaturesStore';
11import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
12import { gaPage } from '../../lib/analytics';
13 12
14import ServiceError from '../../components/settings/services/ServiceError'; 13import ServiceError from '../../components/settings/services/ServiceError';
15import EditServiceForm from '../../components/settings/services/EditServiceForm'; 14import EditServiceForm from '../../components/settings/services/EditServiceForm';
@@ -19,9 +18,12 @@ import { required, url, oneRequired } from '../../helpers/validation-helpers';
19import { getSelectOptions } from '../../helpers/i18n-helpers'; 18import { getSelectOptions } from '../../helpers/i18n-helpers';
20 19
21import { config as proxyFeature } from '../../features/serviceProxy'; 20import { config as proxyFeature } from '../../features/serviceProxy';
21import { config as spellcheckerFeature } from '../../features/spellchecker';
22 22
23import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; 23import { SPELLCHECKER_LOCALES } from '../../i18n/languages';
24 24
25import globalMessages from '../../i18n/globalMessages';
26
25const messages = defineMessages({ 27const messages = defineMessages({
26 name: { 28 name: {
27 id: 'settings.service.form.name', 29 id: 'settings.service.form.name',
@@ -83,14 +85,6 @@ const messages = defineMessages({
83 id: 'settings.service.form.proxy.password', 85 id: 'settings.service.form.proxy.password',
84 defaultMessage: '!!!Password', 86 defaultMessage: '!!!Password',
85 }, 87 },
86 spellcheckerLanguage: {
87 id: 'settings.service.form.spellcheckerLanguage',
88 defaultMessage: '!!!Spell checking Language',
89 },
90 spellcheckerSystemDefault: {
91 id: 'settings.service.form.spellcheckerLanguage.default',
92 defaultMessage: '!!!Use System Default ({default})',
93 },
94}); 88});
95 89
96export default @inject('stores', 'actions') @observer class EditServiceScreen extends Component { 90export default @inject('stores', 'actions') @observer class EditServiceScreen extends Component {
@@ -98,10 +92,6 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
98 intl: intlShape, 92 intl: intlShape,
99 }; 93 };
100 94
101 componentDidMount() {
102 gaPage('Settings/Service/Edit');
103 }
104
105 onSubmit(data) { 95 onSubmit(data) {
106 const { action } = this.props.router.params; 96 const { action } = this.props.router.params;
107 const { recipes, services } = this.props.stores; 97 const { recipes, services } = this.props.stores;
@@ -118,12 +108,26 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
118 } 108 }
119 109
120 prepareForm(recipe, service, proxy) { 110 prepareForm(recipe, service, proxy) {
111 const {
112 intl,
113 } = this.context;
114
115 const {
116 stores,
117 } = this.props;
118
119 let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage];
120
121 if (stores.settings.app.spellcheckerLanguage === 'automatic') {
122 defaultSpellcheckerLanguage = intl.formatMessage(globalMessages.spellcheckerAutomaticDetectionShort);
123 }
124
121 const spellcheckerLanguage = getSelectOptions({ 125 const spellcheckerLanguage = getSelectOptions({
122 locales: SPELLCHECKER_LOCALES, 126 locales: SPELLCHECKER_LOCALES,
123 resetToDefaultText: this.context.intl.formatMessage(messages.spellcheckerSystemDefault, { default: SPELLCHECKER_LOCALES[this.props.stores.settings.app.spellcheckerLanguage] }), 127 resetToDefaultText: intl.formatMessage(globalMessages.spellcheckerSystemDefault, { default: defaultSpellcheckerLanguage }),
128 automaticDetectionText: stores.settings.app.spellcheckerLanguage !== 'automatic' ? intl.formatMessage(globalMessages.spellcheckerAutomaticDetection) : '',
124 }); 129 });
125 130
126 const { intl } = this.context;
127 const config = { 131 const config = {
128 fields: { 132 fields: {
129 name: { 133 name: {
@@ -160,13 +164,13 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
160 isDarkModeEnabled: { 164 isDarkModeEnabled: {
161 label: intl.formatMessage(messages.enableDarkMode), 165 label: intl.formatMessage(messages.enableDarkMode),
162 value: service.isDarkModeEnabled, 166 value: service.isDarkModeEnabled,
163 default: this.props.stores.settings.app.darkMode, 167 default: stores.settings.app.darkMode,
164 }, 168 },
165 spellcheckerLanguage: { 169 spellcheckerLanguage: {
166 label: intl.formatMessage(messages.spellcheckerLanguage), 170 label: intl.formatMessage(globalMessages.spellcheckerLanguage),
167 value: service.spellcheckerLanguage, 171 value: service.spellcheckerLanguage,
168 options: spellcheckerLanguage, 172 options: spellcheckerLanguage,
169 disabled: !this.props.stores.settings.app.enableSpellchecking, 173 disabled: !stores.settings.app.enableSpellchecking,
170 }, 174 },
171 }, 175 },
172 }; 176 };
@@ -220,7 +224,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
220 } 224 }
221 225
222 if (proxy.isEnabled) { 226 if (proxy.isEnabled) {
223 const serviceProxyConfig = this.props.stores.settings.proxy[service.id] || {}; 227 const serviceProxyConfig = stores.settings.proxy[service.id] || {};
224 228
225 Object.assign(config.fields, { 229 Object.assign(config.fields, {
226 proxy: { 230 proxy: {
@@ -326,7 +330,8 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
326 onSubmit={d => this.onSubmit(d)} 330 onSubmit={d => this.onSubmit(d)}
327 onDelete={() => this.deleteService()} 331 onDelete={() => this.deleteService()}
328 isProxyFeatureEnabled={proxyFeature.isEnabled} 332 isProxyFeatureEnabled={proxyFeature.isEnabled}
329 isProxyFeaturePremiumFeature={proxyFeature.isPremium} 333 isProxyPremiumFeature={proxyFeature.isPremium}
334 isSpellcheckerPremiumFeature={spellcheckerFeature.isPremium}
330 /> 335 />
331 </ErrorBoundary> 336 </ErrorBoundary>
332 ); 337 );