aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/recipe.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/webview/recipe.js')
-rw-r--r--src/webview/recipe.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/webview/recipe.js b/src/webview/recipe.js
index 3f2338b68..ddfd0e139 100644
--- a/src/webview/recipe.js
+++ b/src/webview/recipe.js
@@ -10,6 +10,7 @@ import {
10} from 'darkreader'; 10} from 'darkreader';
11 11
12import ignoreList from './darkmode/ignore'; 12import ignoreList from './darkmode/ignore';
13import customDarkModeCss from './darkmode/custom';
13 14
14import RecipeWebview from './lib/RecipeWebview'; 15import RecipeWebview from './lib/RecipeWebview';
15 16
@@ -42,6 +43,8 @@ class RecipeController {
42 'get-service-id': 'serviceIdEcho', 43 'get-service-id': 'serviceIdEcho',
43 }; 44 };
44 45
46 universalDarkModeInjected = false;
47
45 constructor() { 48 constructor() {
46 this.initialize(); 49 this.initialize();
47 } 50 }
@@ -117,7 +120,7 @@ class RecipeController {
117 } 120 }
118 } 121 }
119 122
120 if (this.settings.service.isDarkModeEnabled || this.settings.app.darkMode) { 123 if (this.settings.service.isDarkModeEnabled) {
121 debug('Enable dark mode'); 124 debug('Enable dark mode');
122 125
123 // Check if recipe has a darkmode.css 126 // Check if recipe has a darkmode.css
@@ -126,9 +129,12 @@ class RecipeController {
126 129
127 if (darkModeExists) { 130 if (darkModeExists) {
128 injectDarkModeStyle(this.settings.service.recipe.path); 131 injectDarkModeStyle(this.settings.service.recipe.path);
129 } else if (!ignoreList.includes(window.location.host)) { 132 } else if (this.settings.app.universalDarkMode && !ignoreList.includes(window.location.host)) {
130 // Use darkreader instead 133 // Use darkreader instead
131 enableDarkMode(); 134 enableDarkMode({}, {
135 css: customDarkModeCss[window.location.host] || '',
136 });
137 this.universalDarkModeInjected = true;
132 } 138 }
133 } else { 139 } else {
134 debug('Remove dark mode'); 140 debug('Remove dark mode');
@@ -137,8 +143,15 @@ class RecipeController {
137 removeDarkModeStyle(); 143 removeDarkModeStyle();
138 } else { 144 } else {
139 disableDarkMode(); 145 disableDarkMode();
146 this.universalDarkModeInjected = false;
140 } 147 }
141 } 148 }
149
150 // Remove dark reader if (universal) dark mode was just disabled
151 if (this.universalDarkModeInjected && (!this.settings.service.isDarkModeEnabled || !this.settings.app.universalDarkMode)) {
152 disableDarkMode();
153 this.universalDarkModeInjected = false;
154 }
142 } 155 }
143 156
144 updateAppSettings(event, data) { 157 updateAppSettings(event, data) {