Skip to content

Commit 1d1b974

Browse files
authored
Fix forced dark mode if dark mode on OS level (#1686)
Fix forced dark mode if dark mode on OS level
2 parents 2395c7a + f397cbc commit 1d1b974

File tree

6 files changed

+33
-37
lines changed

6 files changed

+33
-37
lines changed

locales/en/messages.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@
1414
"message": "No",
1515
"description": "General No message to be used across the application"
1616
},
17+
"on": {
18+
"message": "On"
19+
},
20+
"off": {
21+
"message": "Off"
22+
},
23+
"auto": {
24+
"message": "Auto"
25+
},
1726
"error": {
1827
"message": "Error: {{errorMessage}}"
1928
},

src/css/main.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,11 @@ input[type="number"]::-webkit-inner-spin-button {
455455
}
456456

457457
#options-window select {
458-
margin-right: 3em;
458+
margin-right: 2px;
459+
background: var(--boxBackground);
460+
color: var(--defaultText);
461+
border: 1px solid var(--subtleAccent);
462+
border-radius: 3px;
459463
}
460464

461465
#options-window span {

src/js/DarkTheme.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ var css_dark = [
2727
]
2828

2929
var DarkTheme = {
30-
configEnabled: false,
30+
configEnabled: undefined,
3131
};
3232

3333
DarkTheme.setConfig = function(result) {
3434
if (this.configEnabled != result) {
3535
this.configEnabled = result;
3636

37-
if (this.configEnabled) {
37+
if (this.configEnabled === 0 || this.configEnabled === 2 && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
3838
this.applyDark();
3939
} else {
4040
this.applyNormal();

src/js/main.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -390,13 +390,13 @@ function startProcess() {
390390
CliAutoComplete.setEnabled(checked);
391391
}).change();
392392

393-
$('div.darkTheme input')
394-
.prop('checked', DarkTheme.configEnabled)
393+
$('#darkThemeSelect')
394+
.val(DarkTheme.configEnabled)
395395
.change(function () {
396-
var checked = $(this).is(':checked');
396+
var value = parseInt($(this).val());
397397

398-
ConfigStorage.set({'darkTheme': checked});
399-
setDarkTheme(checked);
398+
ConfigStorage.set({'darkTheme': value});
399+
setDarkTheme(value);
400400
}).change();
401401

402402
function close_and_cleanup(e) {
@@ -548,7 +548,12 @@ function startProcess() {
548548
});
549549

550550
ConfigStorage.get('darkTheme', function (result) {
551-
setDarkTheme(result.darkTheme);
551+
if (result.darkTheme === undefined || typeof result.darkTheme !== "number") {
552+
// sets dark theme to auto if not manually changed
553+
setDarkTheme(2);
554+
} else {
555+
setDarkTheme(result.darkTheme);
556+
}
552557
});
553558
};
554559

src/main.html

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -62,33 +62,6 @@
6262
<link type="text/css" rel="stylesheet" href="./css/tabs-dark/power-dark.css" media="all" disabled/>
6363
<link type="text/css" rel="stylesheet" href="./css/tabs-dark/transponder-dark.css" media="all" disabled/>
6464

65-
<!-- Chrome 76 supports dark mode at the OS level -->
66-
<style type="text/css">
67-
@import url(./css/main-dark.css) (prefers-color-scheme: dark);
68-
@import url(./css/tabs-dark/landing-dark.css) (prefers-color-scheme: dark);
69-
@import url(./css/tabs-dark/setup-dark.css) (prefers-color-scheme: dark);
70-
@import url(./css/tabs-dark/help-dark.css) (prefers-color-scheme: dark);
71-
@import url(./css/tabs-dark/ports-dark.css) (prefers-color-scheme: dark);
72-
@import url(./css/tabs-dark/configuration-dark.css) (prefers-color-scheme: dark);
73-
@import url(./css/tabs-dark/pid_tuning-dark.css) (prefers-color-scheme: dark);
74-
@import url(./css/tabs-dark/receiver-dark.css) (prefers-color-scheme: dark);
75-
@import url(./css/tabs-dark/servos-dark.css) (prefers-color-scheme: dark);
76-
@import url(./css/tabs-dark/gps-dark.css) (prefers-color-scheme: dark);
77-
@import url(./css/tabs-dark/motors-dark.css) (prefers-color-scheme: dark);
78-
@import url(./css/tabs-dark/led_strip-dark.css) (prefers-color-scheme: dark);
79-
@import url(./css/tabs-dark/sensors-dark.css) (prefers-color-scheme: dark);
80-
@import url(./css/tabs-dark/cli-dark.css) (prefers-color-scheme: dark);
81-
@import url(./css/tabs-dark/logging-dark.css) (prefers-color-scheme: dark);
82-
@import url(./css/tabs-dark/onboard_logging-dark.css) (prefers-color-scheme: dark);
83-
@import url(./css/tabs-dark/firmware_flasher-dark.css) (prefers-color-scheme: dark);
84-
@import url(./css/tabs-dark/adjustments-dark.css) (prefers-color-scheme: dark);
85-
@import url(./css/tabs-dark/auxiliary-dark.css) (prefers-color-scheme: dark);
86-
@import url(./css/tabs-dark/failsafe-dark.css) (prefers-color-scheme: dark);
87-
@import url(./css/tabs-dark/osd-dark.css) (prefers-color-scheme: dark);
88-
@import url(./css/tabs-dark/power-dark.css) (prefers-color-scheme: dark);
89-
@import url(./css/tabs-dark/transponder-dark.css) (prefers-color-scheme: dark);
90-
</style>
91-
9265
<script type="text/javascript" src="./node_modules/lru_map/lru.js"></script>
9366
<script type="text/javascript" src="./node_modules/i18next/i18next.min.js"></script>
9467
<script type="text/javascript" src="./node_modules/i18next-xhr-backend/i18nextXHRBackend.min.js"></script>

src/tabs/options.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,10 @@
1414
<label><input type="checkbox" /><span i18n="cliAutoComplete"></span></label>
1515
</div>
1616
<div class="darkTheme">
17-
<label><input type="checkbox" /><span i18n="darkTheme"></span></label>
17+
<select id="darkThemeSelect">
18+
<option value="0" i18n="on"></option>
19+
<option value="1" i18n="off"></option>
20+
<option value="2" i18n="auto"></option>
21+
</select>
22+
<span i18n="darkTheme"></span>
1823
</div>

0 commit comments

Comments
 (0)