UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

56 lines (54 loc) 1.65 kB
import { useThemeStore } from "./chunk-GF2M5EE6.mjs"; // src/hooks/useTheme.ts import { useEffect, useMemo } from "react"; var useTheme = () => { const { themeMode, isDark, toggleTheme, setTheme, initializeTheme, handleSystemThemeChange } = useThemeStore(); const branding = useMemo(() => { if (typeof document === "undefined") { return { theme: null, favicon: null, icon: null, mainLogo: null, internalLogo: null, loginImage: null }; } return { theme: document.querySelector('meta[name="theme"]')?.getAttribute("content") ?? null, favicon: document.querySelector('link[rel="icon"]')?.getAttribute("href") ?? null, icon: document.querySelector('link[rel="apple-touch-icon"]')?.getAttribute("href") ?? null, mainLogo: document.querySelector('meta[name="main-logo"]')?.getAttribute("content") ?? null, internalLogo: document.querySelector('meta[name="internal-logo"]')?.getAttribute("content") ?? null, loginImage: document.querySelector('meta[name="login-image"]')?.getAttribute("content") ?? null }; }, []); useEffect(() => { initializeTheme(); const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)"); mediaQuery.addEventListener("change", handleSystemThemeChange); return () => { mediaQuery.removeEventListener("change", handleSystemThemeChange); }; }, [initializeTheme, handleSystemThemeChange]); return { themeMode, isDark, toggleTheme, setTheme, branding }; }; export { useTheme }; //# sourceMappingURL=chunk-HYVBZ5EV.mjs.map