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.js90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/webview/plugin.js b/src/webview/plugin.js
deleted file mode 100644
index 72530733d..000000000
--- a/src/webview/plugin.js
+++ /dev/null
@@ -1,90 +0,0 @@
1import { ipcRenderer } from 'electron';
2import path from 'path';
3
4import RecipeWebview from './lib/RecipeWebview';
5
6import spellchecker, { switchDict, disable as disableSpellchecker } from './spellchecker';
7import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
8import contextMenu from './contextMenu';
9import './notifications';
10
11const debug = require('debug')('Franz:Plugin');
12
13window.franzSettings = {};
14let serviceData;
15
16ipcRenderer.on('initializeRecipe', (e, data) => {
17 const modulePath = path.join(data.recipe.path, 'webview.js');
18 // Delete module from cache
19 delete require.cache[require.resolve(modulePath)];
20 try {
21 // eslint-disable-next-line
22 require(modulePath)(new RecipeWebview(), data);
23 debug('Initialize Recipe', data);
24
25 serviceData = data;
26
27 if (data.isDarkModeEnabled) {
28 injectDarkModeStyle(data.recipe.path);
29 debug('Add dark theme styles');
30 }
31 } catch (err) {
32 debug('Recipe initialization failed', err);
33 }
34});
35
36// Needs to run asap to intialize dictionaries
37(async () => {
38 const spellcheckingProvider = await spellchecker();
39 contextMenu(spellcheckingProvider);
40})();
41
42ipcRenderer.on('settings-update', async (e, data) => {
43 debug('Settings update received', data);
44
45 if (data.enableSpellchecking) {
46 switchDict(data.spellcheckerLanguage);
47 } else {
48 disableSpellchecker();
49 }
50
51 window.franzSettings = data;
52});
53
54ipcRenderer.on('service-settings-update', (e, data) => {
55 debug('Service settings update received', data);
56
57 if (data.isDarkModeEnabled && !isDarkModeStyleInjected()) {
58 injectDarkModeStyle(serviceData.recipe.path);
59
60 debug('Enable service dark mode');
61 } else if (!data.isDarkModeEnabled && isDarkModeStyleInjected()) {
62 removeDarkModeStyle();
63
64 debug('Disable service dark mode');
65 }
66});
67
68// Needed for current implementation of electrons 'login' event 🤦‍
69ipcRenderer.on('get-service-id', (event) => {
70 debug('Asking for service id', event);
71
72 event.sender.send('service-id', serviceData.id);
73});
74
75
76document.addEventListener('DOMContentLoaded', () => {
77 ipcRenderer.sendToHost('hello');
78}, false);
79
80// Patching window.open
81const originalWindowOpen = window.open;
82
83window.open = (url, frameName, features) => {
84 // We need to differentiate if the link should be opened in a popup or in the systems default browser
85 if (!frameName && !features) {
86 return ipcRenderer.sendToHost('new-window', url);
87 }
88
89 return originalWindowOpen(url, frameName, features);
90};