mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-06 21:57:48 +01:00
Fix: dont lose color when switching light / dark (#5796)
This commit is contained in:
@@ -499,6 +499,7 @@ function Home({ initialSettings }) {
|
|||||||
|
|
||||||
export default function Wrapper({ initialSettings, fallback }) {
|
export default function Wrapper({ initialSettings, fallback }) {
|
||||||
const { theme } = useContext(ThemeContext);
|
const { theme } = useContext(ThemeContext);
|
||||||
|
const { color } = useContext(ColorContext);
|
||||||
let backgroundImage = "";
|
let backgroundImage = "";
|
||||||
let opacity = initialSettings?.backgroundOpacity ?? 0;
|
let opacity = initialSettings?.backgroundOpacity ?? 0;
|
||||||
let backgroundBlur = false;
|
let backgroundBlur = false;
|
||||||
@@ -527,14 +528,22 @@ export default function Wrapper({ initialSettings, fallback }) {
|
|||||||
html.classList.toggle("dark", theme === "dark");
|
html.classList.toggle("dark", theme === "dark");
|
||||||
html.classList.add(theme === "dark" ? "scheme-dark" : "scheme-light");
|
html.classList.add(theme === "dark" ? "scheme-dark" : "scheme-light");
|
||||||
|
|
||||||
html.classList.remove(...Array.from(html.classList).filter((cls) => cls.startsWith("theme-")));
|
const desiredThemeClass = `theme-${color || initialSettings.color || "slate"}`;
|
||||||
html.classList.add(`theme-${initialSettings.color || "slate"}`);
|
const themeClassesToRemove = Array.from(html.classList).filter(
|
||||||
|
(cls) => cls.startsWith("theme-") && cls !== desiredThemeClass,
|
||||||
|
);
|
||||||
|
if (themeClassesToRemove.length) {
|
||||||
|
html.classList.remove(...themeClassesToRemove);
|
||||||
|
}
|
||||||
|
if (!html.classList.contains(desiredThemeClass)) {
|
||||||
|
html.classList.add(desiredThemeClass);
|
||||||
|
}
|
||||||
|
|
||||||
// Remove any previously applied inline styles
|
// Remove any previously applied inline styles
|
||||||
body.style.backgroundImage = "";
|
body.style.backgroundImage = "";
|
||||||
body.style.backgroundColor = "";
|
body.style.backgroundColor = "";
|
||||||
body.style.backgroundAttachment = "";
|
body.style.backgroundAttachment = "";
|
||||||
}, [backgroundImage, opacity, theme, initialSettings.color]);
|
}, [backgroundImage, opacity, theme, color, initialSettings.color]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
Reference in New Issue
Block a user