mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
fix: lock dark mode toggle with theme settings
This commit is contained in:
@@ -4,6 +4,7 @@ import { appendBackgroundToUI } from "./ImageBackgrounds";
|
|||||||
import stringToHTML from "../utils/stringToHTML";
|
import stringToHTML from "../utils/stringToHTML";
|
||||||
import { settingsState } from "../utils/listeners/SettingsState";
|
import { settingsState } from "../utils/listeners/SettingsState";
|
||||||
import { updateAllColors } from "./colors/Manager";
|
import { updateAllColors } from "./colors/Manager";
|
||||||
|
import { delay } from "../utils/delay";
|
||||||
|
|
||||||
export async function AddBetterSEQTAElements() {
|
export async function AddBetterSEQTAElements() {
|
||||||
if (settingsState.onoff) {
|
if (settingsState.onoff) {
|
||||||
@@ -247,11 +248,22 @@ async function addDarkLightToggle() {
|
|||||||
updateAllColors();
|
updateAllColors();
|
||||||
|
|
||||||
document.getElementById('LightDarkModeButton')!.addEventListener('click', async () => {
|
document.getElementById('LightDarkModeButton')!.addEventListener('click', async () => {
|
||||||
|
const darklightText = document.getElementById('darklighttooliptext');
|
||||||
|
|
||||||
|
if (settingsState.originalDarkMode) {
|
||||||
|
darklightText!.innerText = 'Locked by current theme';
|
||||||
|
|
||||||
|
await delay(1000)
|
||||||
|
|
||||||
|
darklightText!.innerText = GetLightDarkModeString();
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
settingsState.DarkMode = !settingsState.DarkMode;
|
settingsState.DarkMode = !settingsState.DarkMode;
|
||||||
|
|
||||||
updateAllColors();
|
updateAllColors();
|
||||||
|
|
||||||
const darklightText = document.getElementById('darklighttooliptext');
|
|
||||||
darklightText!.innerText = GetLightDarkModeString();
|
darklightText!.innerText = GetLightDarkModeString();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,15 @@ import { settingsState } from '../../utils/listeners/SettingsState';
|
|||||||
import { applyCustomCSS } from './Themes';
|
import { applyCustomCSS } from './Themes';
|
||||||
|
|
||||||
|
|
||||||
export const applyTheme = async (theme: CustomTheme) => {
|
export const applyTheme = async (theme: CustomTheme, reEnable?: boolean) => {
|
||||||
let CustomCSS = '';
|
let CustomCSS = '';
|
||||||
let CustomImages: CustomImage[] = [];
|
let CustomImages: CustomImage[] = [];
|
||||||
|
|
||||||
if (theme?.CustomCSS) CustomCSS = theme.CustomCSS;
|
if (theme?.CustomCSS) CustomCSS = theme.CustomCSS;
|
||||||
if (theme?.CustomImages) CustomImages = theme.CustomImages;
|
if (theme?.CustomImages) CustomImages = theme.CustomImages;
|
||||||
if (theme?.forceDark) {
|
if (theme?.forceDark != undefined) {
|
||||||
settingsState.originalDarkMode = settingsState.DarkMode
|
if (!reEnable) settingsState.originalDarkMode = settingsState.DarkMode
|
||||||
|
|
||||||
settingsState.DarkMode = theme.forceDark
|
settingsState.DarkMode = theme.forceDark
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export const enableCurrentTheme = async () => {
|
|||||||
if (settingsState.selectedTheme) {
|
if (settingsState.selectedTheme) {
|
||||||
const theme = await localforage.getItem(settingsState.selectedTheme) as CustomTheme;
|
const theme = await localforage.getItem(settingsState.selectedTheme) as CustomTheme;
|
||||||
if (theme) {
|
if (theme) {
|
||||||
await applyTheme(theme);
|
await applyTheme(theme, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user