Skip to content

Commit 3bd3b3b

Browse files
feat. make the system theme default (Closes #746)
1 parent 99989f3 commit 3bd3b3b

File tree

5 files changed

+23
-21
lines changed

5 files changed

+23
-21
lines changed

src/lib/settings.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import Url from "utils/Url";
55
import helpers from "utils/helpers";
66
import constants from "./constants";
77
import lang from "./lang";
8+
import { getSystemEditorTheme } from "theme/preInstalled";
9+
import { isDeviceDarkTheme } from "./systemConfiguration";
810

911
/**
1012
* @typedef {object} fileBrowserSettings
@@ -182,8 +184,8 @@ class Settings {
182184
this.settingsFile = Url.join(DATA_STORAGE, "settings.json");
183185

184186
if (!IS_FREE_VERSION) {
185-
this.#defaultSettings.appTheme = "ocean";
186-
this.#defaultSettings.editorTheme = "ace/theme/dracula";
187+
this.#defaultSettings.appTheme = "system";
188+
this.#defaultSettings.editorTheme = getSystemEditorTheme(isDeviceDarkTheme());
187189
}
188190

189191
this.#initialized = true;

src/lib/systemConfiguration.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,5 @@ export function getSystemConfiguration() {
5454
}
5555

5656
export function isDeviceDarkTheme() {
57-
return new Promise((resolve, reject) => {
58-
try {
59-
var isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
60-
resolve(isDark);
61-
} catch (e) {
62-
resolve(false);
63-
}
64-
});
57+
return window.matchMedia("(prefers-color-scheme: dark)").matches
6558
}

src/palettes/changeTheme/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ function generateHints(type) {
5858
});
5959
}
6060

61-
let previousDark = await isDeviceDarkTheme();
61+
let previousDark = isDeviceDarkTheme();
6262
const updateTimeMs = 2000;
6363

6464
let intervalId = setInterval(async () => {
6565
if (appSettings.value.appTheme.toLowerCase() === "system") {
66-
const isDark = await isDeviceDarkTheme();
66+
const isDark = isDeviceDarkTheme();
6767
if (isDark !== previousDark) {
6868
previousDark = isDark;
6969
updateSystemTheme(isDark);
@@ -81,7 +81,7 @@ function onselect(value) {
8181
if (!intervalId) {
8282
intervalId = setInterval(async () => {
8383
if (appSettings.value.appTheme.toLowerCase() === "system") {
84-
const isDark = await isDeviceDarkTheme();
84+
const isDark = isDeviceDarkTheme();
8585
if (isDark !== previousDark) {
8686
previousDark = isDark;
8787
updateSystemTheme(isDark);

src/theme/list.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let themeApplied = false;
1414
function init() {
1515
themes.forEach((theme) => add(theme));
1616
(async () => {
17-
updateSystemTheme(await isDeviceDarkTheme());
17+
updateSystemTheme(isDeviceDarkTheme());
1818
})();
1919
}
2020

src/theme/preInstalled.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,14 @@ light.popupIconColor = "rgb(51, 62, 89)";
171171

172172
const system = createBuiltInTheme("System");
173173

174+
export function getSystemEditorTheme(darkTheme){
175+
if(darkTheme){
176+
return "ace/theme/clouds_midnight"
177+
}else{
178+
return "ace/theme/crimson_editor"
179+
}
180+
}
181+
174182
export function updateSystemTheme(darkTheme) {
175183
if (darkTheme) {
176184
system.primaryColor = "rgb(49, 49, 49)";
@@ -183,8 +191,6 @@ export function updateSystemTheme(darkTheme) {
183191
system.borderColor = "rgba(230, 230, 230, 0.2)";
184192
system.popupIconColor = WHITE;
185193

186-
system.preferredEditorTheme = "ace/theme/clouds_midnight";
187-
188194
system.popupBackgroundColor = "rgb(49, 49, 49)";
189195
system.popupTextColor = WHITE;
190196
system.popupActiveColor = "rgb(255, 215, 0)";
@@ -201,26 +207,27 @@ export function updateSystemTheme(darkTheme) {
201207
system.borderColor = "rgb(153, 153, 153)";
202208
system.popupIconColor = "rgb(51, 62, 89)";
203209

204-
system.preferredEditorTheme = "ace/theme/crimson_editor";
205-
206210
system.popupBackgroundColor = WHITE;
207211
system.popupTextColor = BLACK;
208212
system.popupActiveColor = "rgb(255, 215, 0)";
209213
}
210214

211-
if (appSettings.value.appTheme.toLowerCase() === "system") {
215+
system.preferredEditorTheme = getSystemEditorTheme(darkTheme)
216+
217+
if (appSettings !== undefined && appSettings.value !== undefined && appSettings.value.appTheme !== undefined && appSettings.value.appTheme.toLowerCase() === "system") {
212218
apply(system.id, true);
213219
}
220+
214221
}
215222

216-
updateSystemTheme(await isDeviceDarkTheme());
223+
updateSystemTheme(isDeviceDarkTheme());
217224

218225
const custom = createBuiltInTheme("Custom");
219226
custom.autoDarkened = true;
220227

221228
export default [
222-
createBuiltInTheme("default", "dark", "free"),
223229
system,
230+
createBuiltInTheme("default", "dark", "free"),
224231
dark,
225232
oled,
226233
ocean,

0 commit comments

Comments
 (0)