aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Vijay A <avijayr@protonmail.com>2021-09-08 20:47:39 +0530
committerLibravatar Vijay A <avijayr@protonmail.com>2021-09-08 20:55:44 +0530
commit2772cb2e3e75f16b3dc96a2441518ed0772e3ba1 (patch)
tree98f5ec36534927581b1b0688837f407774d5f76a /src
parentrefactor: expose some more methods for session handling on the main repo (#1887) (diff)
downloadferdium-app-2772cb2e3e75f16b3dc96a2441518ed0772e3ba1.tar.gz
ferdium-app-2772cb2e3e75f16b3dc96a2441518ed0772e3ba1.tar.zst
ferdium-app-2772cb2e3e75f16b3dc96a2441518ed0772e3ba1.zip
chore: proxy feature is always turned on: remove 'enabled' flag
Diffstat (limited to 'src')
-rw-r--r--src/components/settings/services/EditServiceForm.js68
-rw-r--r--src/containers/settings/EditServiceScreen.js77
-rw-r--r--src/features/serviceProxy/index.js29
3 files changed, 77 insertions, 97 deletions
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index c41cdd56a..23c667b82 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -144,7 +144,6 @@ export default @observer class EditServiceForm extends Component {
144 openRecipeFile: PropTypes.func.isRequired, 144 openRecipeFile: PropTypes.func.isRequired,
145 isSaving: PropTypes.bool.isRequired, 145 isSaving: PropTypes.bool.isRequired,
146 isDeleting: PropTypes.bool.isRequired, 146 isDeleting: PropTypes.bool.isRequired,
147 isProxyFeatureEnabled: PropTypes.bool.isRequired,
148 }; 147 };
149 148
150 static defaultProps = { 149 static defaultProps = {
@@ -206,7 +205,6 @@ export default @observer class EditServiceForm extends Component {
206 isDeleting, 205 isDeleting,
207 onDelete, 206 onDelete,
208 openRecipeFile, 207 openRecipeFile,
209 isProxyFeatureEnabled,
210 } = this.props; 208 } = this.props;
211 const { intl } = this.context; 209 const { intl } = this.context;
212 210
@@ -370,42 +368,40 @@ export default @observer class EditServiceForm extends Component {
370 </div> 368 </div>
371 )} 369 )}
372 370
373 {isProxyFeatureEnabled && ( 371 <div className="settings__settings-group">
374 <div className="settings__settings-group"> 372 <h3>
375 <h3> 373 {intl.formatMessage(messages.headlineProxy)}
376 {intl.formatMessage(messages.headlineProxy)} 374 <span className="badge badge--success">beta</span>
377 <span className="badge badge--success">beta</span> 375 </h3>
378 </h3> 376 <Toggle field={form.$('proxy.isEnabled')} />
379 <Toggle field={form.$('proxy.isEnabled')} /> 377 {form.$('proxy.isEnabled').value && (
380 {form.$('proxy.isEnabled').value && ( 378 <>
381 <> 379 <div className="grid">
382 <div className="grid"> 380 <div className="grid__row">
383 <div className="grid__row"> 381 <Input field={form.$('proxy.host')} className="proxyHost" />
384 <Input field={form.$('proxy.host')} className="proxyHost" /> 382 <Input field={form.$('proxy.port')} />
385 <Input field={form.$('proxy.port')} />
386 </div>
387 </div> 383 </div>
388 <div className="grid"> 384 </div>
389 <div className="grid__row"> 385 <div className="grid">
390 <Input field={form.$('proxy.user')} /> 386 <div className="grid__row">
391 <Input 387 <Input field={form.$('proxy.user')} />
392 field={form.$('proxy.password')} 388 <Input
393 showPasswordToggle 389 field={form.$('proxy.password')}
394 /> 390 showPasswordToggle
395 </div> 391 />
396 </div> 392 </div>
397 <p> 393 </div>
398 <span className="mdi mdi-information" /> 394 <p>
399 {intl.formatMessage(messages.proxyRestartInfo)} 395 <span className="mdi mdi-information" />
400 </p> 396 {intl.formatMessage(messages.proxyRestartInfo)}
401 <p> 397 </p>
402 <span className="mdi mdi-information" /> 398 <p>
403 {intl.formatMessage(messages.proxyInfo)} 399 <span className="mdi mdi-information" />
404 </p> 400 {intl.formatMessage(messages.proxyInfo)}
405 </> 401 </p>
406 )} 402 </>
407 </div> 403 )}
408 )} 404 </div>
409 405
410 <div className="user-agent"> 406 <div className="user-agent">
411 <Input field={form.$('userAgentPref')} /> 407 <Input field={form.$('userAgentPref')} />
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index c880e97ae..3a66a27e6 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -18,8 +18,6 @@ import ErrorBoundary from '../../components/util/ErrorBoundary';
18import { required, url, oneRequired } from '../../helpers/validation-helpers'; 18import { required, url, oneRequired } from '../../helpers/validation-helpers';
19import { getSelectOptions } from '../../helpers/i18n-helpers'; 19import { getSelectOptions } from '../../helpers/i18n-helpers';
20 20
21import { config as proxyFeature } from '../../features/serviceProxy';
22
23import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; 21import { SPELLCHECKER_LOCALES } from '../../i18n/languages';
24 22
25import globalMessages from '../../i18n/globalMessages'; 23import globalMessages from '../../i18n/globalMessages';
@@ -131,7 +129,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
131 } 129 }
132 } 130 }
133 131
134 prepareForm(recipe, service, proxy) { 132 prepareForm(recipe, service) {
135 const { 133 const {
136 intl, 134 intl,
137 } = this.context; 135 } = this.context;
@@ -275,44 +273,42 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
275 }); 273 });
276 } 274 }
277 275
278 if (proxy.isEnabled) { 276 const serviceProxyConfig = stores.settings.proxy[service.id] || {};
279 const serviceProxyConfig = stores.settings.proxy[service.id] || {}; 277
280 278 Object.assign(config.fields, {
281 Object.assign(config.fields, { 279 proxy: {
282 proxy: { 280 name: 'proxy',
283 name: 'proxy', 281 label: 'proxy',
284 label: 'proxy', 282 fields: {
285 fields: { 283 isEnabled: {
286 isEnabled: { 284 label: intl.formatMessage(messages.enableProxy),
287 label: intl.formatMessage(messages.enableProxy), 285 value: serviceProxyConfig.isEnabled,
288 value: serviceProxyConfig.isEnabled, 286 default: false,
289 default: false, 287 },
290 }, 288 host: {
291 host: { 289 label: intl.formatMessage(messages.proxyHost),
292 label: intl.formatMessage(messages.proxyHost), 290 value: serviceProxyConfig.host,
293 value: serviceProxyConfig.host, 291 default: '',
294 default: '', 292 },
295 }, 293 port: {
296 port: { 294 label: intl.formatMessage(messages.proxyPort),
297 label: intl.formatMessage(messages.proxyPort), 295 value: serviceProxyConfig.port,
298 value: serviceProxyConfig.port, 296 default: '',
299 default: '', 297 },
300 }, 298 user: {
301 user: { 299 label: intl.formatMessage(messages.proxyUser),
302 label: intl.formatMessage(messages.proxyUser), 300 value: serviceProxyConfig.user,
303 value: serviceProxyConfig.user, 301 default: '',
304 default: '', 302 },
305 }, 303 password: {
306 password: { 304 label: intl.formatMessage(messages.proxyPassword),
307 label: intl.formatMessage(messages.proxyPassword), 305 value: serviceProxyConfig.password,
308 value: serviceProxyConfig.password, 306 default: '',
309 default: '', 307 type: 'password',
310 type: 'password',
311 },
312 }, 308 },
313 }, 309 },
314 }); 310 },
315 } 311 });
316 312
317 return new Form(config); 313 return new Form(config);
318 } 314 }
@@ -381,7 +377,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
381 ); 377 );
382 } 378 }
383 379
384 const form = this.prepareForm(recipe, service, proxyFeature); 380 const form = this.prepareForm(recipe, service);
385 381
386 return ( 382 return (
387 <ErrorBoundary> 383 <ErrorBoundary>
@@ -397,7 +393,6 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
397 onSubmit={(d) => this.onSubmit(d)} 393 onSubmit={(d) => this.onSubmit(d)}
398 onDelete={() => this.deleteService()} 394 onDelete={() => this.deleteService()}
399 openRecipeFile={(file) => this.openRecipeFile(file)} 395 openRecipeFile={(file) => this.openRecipeFile(file)}
400 isProxyFeatureEnabled={proxyFeature.isEnabled}
401 /> 396 />
402 </ErrorBoundary> 397 </ErrorBoundary>
403 ); 398 );
diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js
index eb7116651..125b4729f 100644
--- a/src/features/serviceProxy/index.js
+++ b/src/features/serviceProxy/index.js
@@ -1,37 +1,26 @@
1import { autorun, observable } from 'mobx'; 1import { autorun } from 'mobx';
2import { session } from '@electron/remote'; 2import { session } from '@electron/remote';
3 3
4const debug = require('debug')('Ferdi:feature:serviceProxy'); 4const debug = require('debug')('Ferdi:feature:serviceProxy');
5 5
6export const config = observable({
7 isEnabled: true,
8});
9
10export default function init(stores) { 6export default function init(stores) {
11 debug('Initializing `serviceProxy` feature'); 7 debug('Initializing `serviceProxy` feature');
12 8
13 autorun(() => { 9 autorun(() => {
14 config.isEnabled = true;
15
16 const services = stores.services.enabled; 10 const services = stores.services.enabled;
17 const proxySettings = stores.settings.proxy; 11 const proxySettings = stores.settings.proxy;
18 12
19 debug('Service Proxy autorun'); 13 debug('Service Proxy autorun');
20 14
21 services.forEach((service) => { 15 services.forEach((service) => {
22 const s = session.fromPartition(`persist:service-${service.id}`); 16 const serviceProxyConfig = proxySettings[service.id];
23 17 if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) {
24 if (config.isEnabled) { 18 const proxyHost = `${serviceProxyConfig.host}${serviceProxyConfig.port ? `:${serviceProxyConfig.port}` : ''}`;
25 const serviceProxyConfig = proxySettings[service.id]; 19 debug(`Setting proxy config from service settings for "${service.name}" (${service.id}) to`, proxyHost);
26 20
27 if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { 21 session.fromPartition(`persist:service-${service.id}`).setProxy({ proxyRules: proxyHost }, () => {
28 const proxyHost = `${serviceProxyConfig.host}${serviceProxyConfig.port ? `:${serviceProxyConfig.port}` : ''}`; 22 debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`);
29 debug(`Setting proxy config from service settings for "${service.name}" (${service.id}) to`, proxyHost); 23 });
30
31 s.setProxy({ proxyRules: proxyHost }, () => {
32 debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`);
33 });
34 }
35 } 24 }
36 }); 25 });
37 }); 26 });