1
1
import { ipcRenderer } from 'electron' ;
2
2
import path from 'path' ;
3
+ import { observable } from 'mobx' ;
3
4
4
5
import RecipeWebview from './lib/RecipeWebview' ;
5
6
@@ -12,6 +13,8 @@ const debug = require('debug')('Franz:Plugin');
12
13
13
14
window . franzSettings = { } ;
14
15
let serviceData ;
16
+ let overrideSpellcheckerLanguage = false ;
17
+
15
18
16
19
ipcRenderer . on ( 'initializeRecipe' , ( e , data ) => {
17
20
const modulePath = path . join ( data . recipe . path , 'webview.js' ) ;
@@ -28,6 +31,13 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
28
31
injectDarkModeStyle ( data . recipe . path ) ;
29
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
41
} catch ( err ) {
32
42
debug ( 'Recipe initialization failed' , err ) ;
33
43
}
@@ -42,10 +52,11 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
42
52
ipcRenderer . on ( 'settings-update' , async ( e , data ) => {
43
53
debug ( 'Settings update received' , data ) ;
44
54
45
- if ( data . enableSpellchecking ) {
46
- switchDict ( data . spellcheckerLanguage ) ;
47
- } else {
55
+ if ( ! data . enableSpellchecking ) {
48
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
62
window . franzSettings = data ;
@@ -54,6 +65,8 @@ ipcRenderer.on('settings-update', async (e, data) => {
54
65
ipcRenderer . on ( 'service-settings-update' , ( e , data ) => {
55
66
debug ( 'Service settings update received' , data ) ;
56
67
68
+ serviceData = data ;
69
+
57
70
if ( data . isDarkModeEnabled && ! isDarkModeStyleInjected ( ) ) {
58
71
injectDarkModeStyle ( serviceData . recipe . path ) ;
59
72
@@ -63,6 +76,18 @@ ipcRenderer.on('service-settings-update', (e, data) => {
63
76
64
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
93
// Needed for current implementation of electrons 'login' event 🤦
0 commit comments