You've already forked AstralRinth
forked from didirus/AstralRinth
Rewrite cosmetics and theme preferences (#1292)
- Cosmetics and theme preferences are now only stored in cookies instead of a combination of both cookies and state. - The theme plugin now supports client hints. This allows the server to render a page using the client-preferred theme provided it supplies this information (any browser other than Firefox), helping to avoid an annoying flash while the page is hydrating. - The previous workaround using the Nitro plugin has been removed. Its functionality is now handled by the Nuxt theme plugin with cleaner code. - All pages and components now use the new plugins.
This commit is contained in:
@@ -1,27 +0,0 @@
|
||||
export default defineNuxtPlugin(async (nuxtApp) => {
|
||||
await useAuth();
|
||||
await useUser();
|
||||
const themeStore = useTheme();
|
||||
const cosmetics = useCosmetics();
|
||||
|
||||
nuxtApp.hook("app:mounted", () => {
|
||||
if (import.meta.client && themeStore.value.preference === "system") {
|
||||
const colorSchemeQueryList = window.matchMedia("(prefers-color-scheme: light)");
|
||||
|
||||
const setColorScheme = (e) => {
|
||||
if (themeStore.value.preference === "system") {
|
||||
if (e.matches) {
|
||||
updateTheme("light");
|
||||
} else {
|
||||
updateTheme(cosmetics.value.preferredDarkTheme ?? "dark");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
setColorScheme(colorSchemeQueryList);
|
||||
colorSchemeQueryList.addEventListener("change", setColorScheme);
|
||||
}
|
||||
});
|
||||
|
||||
nuxtApp.provide("colorMode", themeStore.value);
|
||||
});
|
||||
Reference in New Issue
Block a user