diff options
Diffstat (limited to 'src/webview/recipe.js')
-rw-r--r-- | src/webview/recipe.js | 19 |
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 | ||
12 | import ignoreList from './darkmode/ignore'; | 12 | import ignoreList from './darkmode/ignore'; |
13 | import customDarkModeCss from './darkmode/custom'; | ||
13 | 14 | ||
14 | import RecipeWebview from './lib/RecipeWebview'; | 15 | import 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) { |