From 75b47a95b7d5ce9d3e35ac71ea8a7d88c1fc3e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Vay=C3=A1?= Date: Mon, 16 Dec 2019 15:59:47 +0100 Subject: [PATCH] [MM-20794] change suggestion on spellchecker locale change (#1132) * [MM-20794] change suggestions if locale is changed * prevent crash on spellchecker load --- src/browser/index.jsx | 1 + src/main.js | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/browser/index.jsx b/src/browser/index.jsx index 5e4099fb..f4c28269 100644 --- a/src/browser/index.jsx +++ b/src/browser/index.jsx @@ -133,6 +133,7 @@ function teamConfigChange(updatedTeams) { function handleSelectSpellCheckerLocale(locale) { config.set('spellCheckerLocale', locale); + ipcRenderer.send('update-dict', locale); } ReactDOM.render( diff --git a/src/main.js b/src/main.js index 5ce4f0e9..97aad610 100644 --- a/src/main.js +++ b/src/main.js @@ -776,16 +776,22 @@ function handleUpdateMenuEvent(event, configData) { } } -function handleUpdateDictionaryEvent() { +// localeSelected might be null, if that's the case, use config's locale +function handleUpdateDictionaryEvent(_, localeSelected) { if (config.useSpellChecker) { - spellChecker = new SpellChecker( - config.spellCheckerLocale, - path.resolve(app.getAppPath(), 'node_modules/simple-spellchecker/dict'), - (err) => { - if (err) { - console.error(err); - } - }); + const locale = localeSelected || config.spellCheckerLocale; + try { + spellChecker = new SpellChecker( + locale, + path.resolve(app.getAppPath(), 'node_modules/simple-spellchecker/dict'), + (err) => { + if (err) { + console.error(err); + } + }); + } catch (e) { + console.error('couldn\'t load a spellchecker for locale'); + } } }