summaryrefslogtreecommitdiff
path: root/web/src/Misc.jsx
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-05-03 00:30:33 +0000
committerGerrit Code Review <review@openstack.org>2023-05-03 00:30:33 +0000
commit51194abf561de04972996199d825613a94cd3b2f (patch)
treead759bc813af0bb716135251da1e54135748c276 /web/src/Misc.jsx
parentbbdbe81790f4926e5e00085309589a2c52e5230b (diff)
parent59cd5de78baa31150958e6d0d6733407c0e95805 (diff)
downloadzuul-51194abf561de04972996199d825613a94cd3b2f.tar.gz
Merge "web: add dark mode and theme selection"
Diffstat (limited to 'web/src/Misc.jsx')
-rw-r--r--web/src/Misc.jsx28
1 files changed, 27 insertions, 1 deletions
diff --git a/web/src/Misc.jsx b/web/src/Misc.jsx
index dae5a84bf..1186f42d3 100644
--- a/web/src/Misc.jsx
+++ b/web/src/Misc.jsx
@@ -120,4 +120,30 @@ IconProperty.propTypes = {
const ConditionalWrapper = ({ condition, wrapper, children }) =>
condition ? wrapper(children) : children
-export { IconProperty, removeHash, ExternalLink, buildExternalLink, buildExternalTableLink, ConditionalWrapper }
+function resolveDarkMode(theme) {
+ let darkMode = false
+
+ if (theme === 'Auto') {
+ let matchMedia = window.matchMedia || function () {
+ return {
+ matches: false,
+ }
+ }
+
+ darkMode = matchMedia('(prefers-color-scheme: dark)').matches
+ } else if (theme === 'Dark') {
+ darkMode = true
+ }
+
+ return darkMode
+}
+
+function setDarkMode(darkMode) {
+ if (darkMode) {
+ document.documentElement.classList.add('pf-theme-dark')
+ } else {
+ document.documentElement.classList.remove('pf-theme-dark')
+ }
+}
+
+export { IconProperty, removeHash, ExternalLink, buildExternalLink, buildExternalTableLink, ConditionalWrapper, resolveDarkMode, setDarkMode }