aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/plugin.js
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2018-11-30 14:32:45 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2018-11-30 14:32:45 +0100
commit3d87c0e45cead95ddb6c11fc6540b82e375bdcf5 (patch)
treec91f425a39cb585242d6df5b4070de4a2141b3b4 /src/webview/plugin.js
parentMerge branch 'update/monetization' into develop (diff)
downloadferdium-app-3d87c0e45cead95ddb6c11fc6540b82e375bdcf5.tar.gz
ferdium-app-3d87c0e45cead95ddb6c11fc6540b82e375bdcf5.tar.zst
ferdium-app-3d87c0e45cead95ddb6c11fc6540b82e375bdcf5.zip
feat(App): Improved spell checker & context menu
Diffstat (limited to 'src/webview/plugin.js')
-rw-r--r--src/webview/plugin.js29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/webview/plugin.js b/src/webview/plugin.js
index 427ec75ad..72530733d 100644
--- a/src/webview/plugin.js
+++ b/src/webview/plugin.js
@@ -1,12 +1,11 @@
1import { ipcRenderer } from 'electron'; 1import { ipcRenderer } from 'electron';
2import { ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker';
3import path from 'path'; 2import path from 'path';
4 3
5import { isDevMode } from '../environment';
6import RecipeWebview from './lib/RecipeWebview'; 4import RecipeWebview from './lib/RecipeWebview';
7 5
8import Spellchecker from './spellchecker'; 6import spellchecker, { switchDict, disable as disableSpellchecker } from './spellchecker';
9import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; 7import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
8import contextMenu from './contextMenu';
10import './notifications'; 9import './notifications';
11 10
12const debug = require('debug')('Franz:Plugin'); 11const debug = require('debug')('Franz:Plugin');
@@ -34,19 +33,21 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
34 } 33 }
35}); 34});
36 35
37const spellchecker = new Spellchecker(); 36// Needs to run asap to intialize dictionaries
38spellchecker.initialize(); 37(async () => {
38 const spellcheckingProvider = await spellchecker();
39 contextMenu(spellcheckingProvider);
40})();
39 41
40const contextMenuBuilder = new ContextMenuBuilder(spellchecker.handler, null, isDevMode); 42ipcRenderer.on('settings-update', async (e, data) => {
41
42new ContextMenuListener((info) => { // eslint-disable-line
43 contextMenuBuilder.showPopupMenu(info);
44});
45
46ipcRenderer.on('settings-update', (e, data) => {
47 debug('Settings update received', data); 43 debug('Settings update received', data);
48 44
49 spellchecker.toggleSpellchecker(data.enableSpellchecking); 45 if (data.enableSpellchecking) {
46 switchDict(data.spellcheckerLanguage);
47 } else {
48 disableSpellchecker();
49 }
50
50 window.franzSettings = data; 51 window.franzSettings = data;
51}); 52});
52 53
@@ -64,7 +65,7 @@ ipcRenderer.on('service-settings-update', (e, data) => {
64 } 65 }
65}); 66});
66 67
67// Needed for current implementation of electrons 'login' event 68// Needed for current implementation of electrons 'login' event 🤦‍
68ipcRenderer.on('get-service-id', (event) => { 69ipcRenderer.on('get-service-id', (event) => {
69 debug('Asking for service id', event); 70 debug('Asking for service id', event);
70 71