aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/plugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/webview/plugin.js')
-rw-r--r--src/webview/plugin.js31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/webview/plugin.js b/src/webview/plugin.js
index 72530733d..6d4e65062 100644
--- a/src/webview/plugin.js
+++ b/src/webview/plugin.js
@@ -1,5 +1,6 @@
1import { ipcRenderer } from 'electron'; 1import { ipcRenderer } from 'electron';
2import path from 'path'; 2import path from 'path';
3import { observable } from 'mobx';
3 4
4import RecipeWebview from './lib/RecipeWebview'; 5import RecipeWebview from './lib/RecipeWebview';
5 6
@@ -12,6 +13,8 @@ const debug = require('debug')('Franz:Plugin');
12 13
13window.franzSettings = {}; 14window.franzSettings = {};
14let serviceData; 15let serviceData;
16let overrideSpellcheckerLanguage = false;
17
15 18
16ipcRenderer.on('initializeRecipe', (e, data) => { 19ipcRenderer.on('initializeRecipe', (e, data) => {
17 const modulePath = path.join(data.recipe.path, 'webview.js'); 20 const modulePath = path.join(data.recipe.path, 'webview.js');
@@ -28,6 +31,13 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
28 injectDarkModeStyle(data.recipe.path); 31 injectDarkModeStyle(data.recipe.path);
29 debug('Add dark theme styles'); 32 debug('Add dark theme styles');
30 } 33 }
34
35 if (data.spellcheckerLanguage) {
36 debug('Overriding spellchecker language to', data.spellcheckerLanguage);
37 switchDict(data.spellcheckerLanguage);
38
39 overrideSpellcheckerLanguage = true;
40 }
31 } catch (err) { 41 } catch (err) {
32 debug('Recipe initialization failed', err); 42 debug('Recipe initialization failed', err);
33 } 43 }
@@ -42,10 +52,11 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
42ipcRenderer.on('settings-update', async (e, data) => { 52ipcRenderer.on('settings-update', async (e, data) => {
43 debug('Settings update received', data); 53 debug('Settings update received', data);
44 54
45 if (data.enableSpellchecking) { 55 if (!data.enableSpellchecking) {
46 switchDict(data.spellcheckerLanguage);
47 } else {
48 disableSpellchecker(); 56 disableSpellchecker();
57 } else if (!overrideSpellcheckerLanguage) {
58 debug('Setting spellchecker language based on app settings to', data.spellcheckerLanguage);
59 switchDict(data.spellcheckerLanguage);
49 } 60 }
50 61
51 window.franzSettings = data; 62 window.franzSettings = data;
@@ -54,6 +65,8 @@ ipcRenderer.on('settings-update', async (e, data) => {
54ipcRenderer.on('service-settings-update', (e, data) => { 65ipcRenderer.on('service-settings-update', (e, data) => {
55 debug('Service settings update received', data); 66 debug('Service settings update received', data);
56 67
68 serviceData = data;
69
57 if (data.isDarkModeEnabled && !isDarkModeStyleInjected()) { 70 if (data.isDarkModeEnabled && !isDarkModeStyleInjected()) {
58 injectDarkModeStyle(serviceData.recipe.path); 71 injectDarkModeStyle(serviceData.recipe.path);
59 72
@@ -63,6 +76,18 @@ ipcRenderer.on('service-settings-update', (e, data) => {
63 76
64 debug('Disable service dark mode'); 77 debug('Disable service dark mode');
65 } 78 }
79
80 if (data.spellcheckerLanguage) {
81 debug('Overriding spellchecker language to', data.spellcheckerLanguage);
82 switchDict(data.spellcheckerLanguage);
83
84 overrideSpellcheckerLanguage = true;
85 } else {
86 debug('Going back to default spellchecker language to', window.franzSettings.spellcheckerLanguage);
87 switchDict(window.franzSettings.spellcheckerLanguage);
88
89 overrideSpellcheckerLanguage = false;
90 }
66}); 91});
67 92
68// Needed for current implementation of electrons 'login' event 🤦‍ 93// Needed for current implementation of electrons 'login' event 🤦‍