analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
56 lines (54 loc) • 1.65 kB
JavaScript
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