import { inject, provide, ref } from 'vue' import type { InjectionKey, Ref } from 'vue' export type DarkModeRef = Ref export const darkModeSymbol: InjectionKey = Symbol( __VUEPRESS_DEV__ ? 'darkMode' : '' ) /** * Inject dark mode global computed */ export const useDarkMode = (): DarkModeRef => { const isDark = inject(darkModeSymbol) if (isDark === undefined) { throw new Error('useDarkMode() is called without provider.') } return isDark } /** * Create dark mode ref and provide as global computed in setup */ export const setupDarkMode = (): void => { const isDark = ref(false) provide(darkModeSymbol, isDark) }