From d450959f52eb7e7518767c881811c889c3babe39 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 1 Dec 2018 23:56:07 +0100 Subject: Fix `cut` context menu --- src/webview/contextMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js index 9b148b220..195306fda 100644 --- a/src/webview/contextMenu.js +++ b/src/webview/contextMenu.js @@ -35,7 +35,7 @@ const buildMenuTpl = (props, suggestions) => { id: 'cut', role: can('Cut') ? 'cut' : '', enabled: can('Cut'), - visible: props.selectionText.trim(), + visible: !!props.selectionText.trim(), }, { id: 'copy', label: 'Copy', -- cgit v1.2.3-70-g09d2 From 0db7c125409f2e8d20cd6dccdb7d2e96c4608e6e Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 1 Dec 2018 23:57:46 +0100 Subject: fix(Windows): Fix impossible Ctrl+10 Shortcut Closes #1091 --- src/lib/Menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 9d7df551c..32ec1b207 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -685,7 +685,7 @@ export default class FranzMenu { if (this.stores.user.isLoggedIn) { return services.map((service, i) => ({ label: this._getServiceName(service), - accelerator: i <= 9 ? `${cmdKey}+${i + 1}` : null, + accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null, type: 'radio', checked: service.isActive, click: () => { -- cgit v1.2.3-70-g09d2 From d70ad5f7f278babab9f017e17eac9e5e9fe8ec5d Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 2 Dec 2018 00:21:13 +0100 Subject: Simplify spellchecker feature init --- src/features/spellchecker/index.js | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/features/spellchecker/index.js b/src/features/spellchecker/index.js index 454096e4e..63506103c 100644 --- a/src/features/spellchecker/index.js +++ b/src/features/spellchecker/index.js @@ -1,36 +1,27 @@ -import { autorun, reaction } from 'mobx'; +import { autorun, observable } from 'mobx'; import { DEFAULT_FEATURES_CONFIG } from '../../config'; const debug = require('debug')('Franz:feature:spellchecker'); -export const config = { +export const config = observable({ isPremiumFeature: DEFAULT_FEATURES_CONFIG.isSpellcheckerPremiumFeature, -}; +}); export default function init(stores) { - reaction( - () => stores.features.features.isSpellcheckerPremiumFeature, - (enabled, r) => { - debug('Initializing `spellchecker` feature'); + debug('Initializing `spellchecker` feature'); - // Dispose the reaction to run this only once - r.dispose(); + autorun(() => { + const { isSpellcheckerPremiumFeature } = stores.features.features; - const { isSpellcheckerPremiumFeature } = stores.features.features; + config.isPremiumFeature = isSpellcheckerPremiumFeature !== undefined ? isSpellcheckerPremiumFeature : DEFAULT_FEATURES_CONFIG.isSpellcheckerPremiumFeature; - config.isPremiumFeature = isSpellcheckerPremiumFeature !== undefined ? isSpellcheckerPremiumFeature : DEFAULT_FEATURES_CONFIG.isSpellcheckerPremiumFeature; + if (!stores.user.data.isPremium && config.isPremiumFeature && stores.settings.app.enableSpellchecking) { + debug('Override settings.spellcheckerEnabled flag to false'); - autorun(() => { - if (!stores.user.data.isPremium && config.isPremiumFeature) { - debug('Override settings.spellcheckerEnabled flag to false'); - - Object.assign(stores.settings.all.app, { - enableSpellchecking: false, - }); - } + Object.assign(stores.settings.app, { + enableSpellchecking: false, }); - }, - ); + } + }); } - -- cgit v1.2.3-70-g09d2 From 0157d083a257522ec65a003a962984bac83044ca Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 2 Dec 2018 00:43:00 +0100 Subject: Simplify service proxy feature init --- src/features/serviceProxy/index.js | 54 ++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js index 50dea8c9b..5a74685a4 100644 --- a/src/features/serviceProxy/index.js +++ b/src/features/serviceProxy/index.js @@ -13,43 +13,33 @@ export const config = observable({ }); export default function init(stores) { - reaction( - () => stores.features.features.isServiceProxyEnabled, - (enabled, r) => { - if (enabled) { - debug('Initializing `serviceProxy` feature'); + debug('Initializing `serviceProxy` feature'); - // Dispose the reaction to run this only once - r.dispose(); + autorun(() => { + const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; - const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; + config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; + config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; - config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; - config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; + const services = stores.services.all; + const isPremiumUser = stores.user.data.isPremium; - autorun(() => { - const services = stores.services.all; - const isPremiumUser = stores.user.isPremium; + services.forEach((service) => { + const s = session.fromPartition(`persist:service-${service.id}`); + let proxyHost = 'direct://'; - if (config.isPremium && !isPremiumUser) return; - - services.forEach((service) => { - const s = session.fromPartition(`persist:service-${service.id}`); - let proxyHost = 'direct://'; - - const serviceProxyConfig = stores.settings.proxy[service.id]; - - if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { - proxyHost = serviceProxyConfig.host; - } - - s.setProxy({ proxyRules: proxyHost }, (e) => { - debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); - }); - }); - }); + if (config.isEnabled && (isPremiumUser || !config.isPremium)) { + const serviceProxyConfig = stores.settings.proxy[service.id]; + + if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { + proxyHost = serviceProxyConfig.host; + } } - }, - ); + + s.setProxy({ proxyRules: proxyHost }, (e) => { + debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); + }); + }); + }); } -- cgit v1.2.3-70-g09d2 From d2d28569c3ec5f3e30f41efe6201fcb70d088c99 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 2 Dec 2018 00:48:57 +0100 Subject: Don't delay app when user has no services --- src/features/delayApp/index.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js index 3fc0f2570..92d2dcf6a 100644 --- a/src/features/delayApp/index.js +++ b/src/features/delayApp/index.js @@ -40,6 +40,11 @@ export default function init(stores) { config.delayDuration = globalConfig.wait !== undefined ? globalConfig.wait : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait; autorun(() => { + if (stores.services.all.length === 0) { + shownAfterLaunch = true; + return; + } + const diff = moment().diff(timeLastDelay); if ((stores.app.isFocused && diff >= config.delayOffset) || !shownAfterLaunch) { debug(`App will be delayed for ${config.delayDuration / 1000}s`); -- cgit v1.2.3-70-g09d2 From c10bc20a687c2cb17f752b649a51e3953e16539f Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 2 Dec 2018 00:51:49 +0100 Subject: Check if service is enabled before trying to reload --- src/stores/ServicesStore.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 8f217ea94..99b091589 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -439,6 +439,8 @@ export default class ServicesStore extends Store { @action _reload({ serviceId }) { const service = this.one(serviceId); + if (!service.isEnabled) return; + service.resetMessageCount(); service.webview.loadURL(service.url); -- cgit v1.2.3-70-g09d2