@bg-dev/nuxt-naiveui
Version:
Unofficial Naive UI module for Nuxt
20 lines (19 loc) • 766 B
JavaScript
import { defineNuxtPlugin, useNaiveColorMode, useRouter } from "#imports";
export default defineNuxtPlugin((nuxtApp) => {
const { colorModePreference, colorModeForced } = useNaiveColorMode();
const colorModePage = useRouter().currentRoute.value?.meta.colorMode;
colorModeForced.value = colorModePage || false;
colorModePreference.sync();
nuxtApp.hook("page:loading:end", () => colorModePreference.sync());
useRouter().afterEach((to) => {
const colorModePage2 = to?.meta.colorMode;
colorModeForced.value = colorModePage2 || false;
});
nuxtApp.hook("app:mounted", () => {
document.addEventListener("visibilitychange", () => {
if (document.visibilityState === "visible") {
colorModePreference.sync();
}
});
});
});