gpu acceleration

This commit is contained in:
ben7sys
2024-11-17 06:40:03 +01:00
parent f41c3dd64a
commit 4330dfe0c7
5 changed files with 94 additions and 11 deletions

View File

@@ -26,11 +26,11 @@
// Set initial theme
const initialTheme = savedTheme || (prefersDark ? THEMES.DARK : THEMES.LIGHT);
document.documentElement.setAttribute('data-theme', initialTheme);
setTheme(initialTheme);
} catch (error) {
console.warn('Early theme initialization error:', error);
// Fallback to light theme
document.documentElement.setAttribute('data-theme', DEFAULT_THEME);
setTheme(DEFAULT_THEME);
}
}
@@ -58,12 +58,17 @@
return document.documentElement.getAttribute('data-theme') || DEFAULT_THEME;
}
function setTheme(theme) {
document.documentElement.setAttribute('data-theme', theme);
document.body.dataset.theme = theme; // Add theme to body for better SSR support
}
function toggleTheme() {
try {
const currentTheme = getCurrentTheme();
const newTheme = currentTheme === THEMES.DARK ? THEMES.LIGHT : THEMES.DARK;
document.documentElement.setAttribute('data-theme', newTheme);
setTheme(newTheme);
localStorage.setItem(THEME_STORAGE_KEY, newTheme);
updateThemeIcon(newTheme);
} catch (error) {
@@ -89,7 +94,7 @@
// Only update theme if user hasn't set a preference
if (!localStorage.getItem(THEME_STORAGE_KEY)) {
const newTheme = e.matches ? THEMES.DARK : THEMES.LIGHT;
document.documentElement.setAttribute('data-theme', newTheme);
setTheme(newTheme);
updateThemeIcon(newTheme);
}
} catch (error) {
@@ -101,6 +106,7 @@
try {
const currentTheme = getCurrentTheme();
localStorage.setItem(THEME_STORAGE_KEY, currentTheme);
document.body.dataset.theme = currentTheme; // Ensure theme is set on body before unload
} catch (error) {
console.warn('Theme persistence error:', error);
}