From 0d6d623d1e34cdbff2d46229165b49289a9a0619 Mon Sep 17 00:00:00 2001 From: Bennett Date: Sun, 21 Jun 2020 09:19:59 +0200 Subject: Add FAB to service dashboard (#824) * Implement #387 * Fix lint * Upgrade to Electron 9 * Remove dependency on electron-spellchecker * Allow multiple languages to be selected * Fix lint * Don't show spellchecker language chooser for macOS * Fix _requireAuthenticatedUser throwing error on startup * Add FAB --- src/webview/recipe.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/webview/recipe.js') diff --git a/src/webview/recipe.js b/src/webview/recipe.js index b0aefd9c1..c6724e35a 100644 --- a/src/webview/recipe.js +++ b/src/webview/recipe.js @@ -65,7 +65,18 @@ class RecipeController { } @computed get spellcheckerLanguage() { - return this.settings.service.spellcheckerLanguage || this.settings.app.spellcheckerLanguage; + let selected; + const langs = this.settings.service.spellcheckerLanguage || this.settings.app.spellcheckerLanguage; + if (typeof langs === 'string' && langs.substr(0, 1) === '[') { + // Value is JSON encoded + selected = JSON.parse(langs); + } else if (typeof langs === 'object') { + selected = langs; + } else { + selected = [langs]; + } + + return selected; } cldIdentifier = null; @@ -165,11 +176,11 @@ class RecipeController { if (this.settings.app.enableSpellchecking) { debug('Setting spellchecker language to', this.spellcheckerLanguage); - let { spellcheckerLanguage } = this; - if (spellcheckerLanguage === 'automatic') { + const { spellcheckerLanguage } = this; + if (spellcheckerLanguage.includes('automatic')) { this.automaticLanguageDetection(); debug('Found `automatic` locale, falling back to user locale until detected', this.settings.app.locale); - spellcheckerLanguage = this.settings.app.locale; + spellcheckerLanguage.push(this.settings.app.locale); } else if (this.cldIdentifier) { this.cldIdentifier.destroy(); } @@ -318,7 +329,10 @@ class RecipeController { const spellcheckerLocale = getSpellcheckerLocaleByFuzzyIdentifier(findResult.language); debug('Language detected reliably, setting spellchecker language to', spellcheckerLocale); if (spellcheckerLocale) { - switchDict(spellcheckerLocale); + switchDict([ + ...this.spellcheckerLanguage, + spellcheckerLocale, + ]); } } }, 225)); -- cgit v1.2.3-54-g00ecf