Files
cinny/src/app/pages/ThemeManager.tsx
T

41 lines
1.1 KiB
TypeScript
Raw Normal View History

import React, { ReactNode, useEffect } from 'react';
import { configClass, varsClass } from 'folds';
import {
DarkTheme,
LightTheme,
ThemeContextProvider,
ThemeKind,
useActiveTheme,
useSystemThemeKind,
} from '../hooks/useTheme';
export function UnAuthRouteThemeManager() {
const systemThemeKind = useSystemThemeKind();
useEffect(() => {
document.body.className = '';
document.body.classList.add(configClass, varsClass);
if (systemThemeKind === ThemeKind.Dark) {
document.body.classList.add(...DarkTheme.classNames);
}
if (systemThemeKind === ThemeKind.Light) {
document.body.classList.add(...LightTheme.classNames);
}
}, [systemThemeKind]);
return null;
}
export function AuthRouteThemeManager({ children }: { children: ReactNode }) {
const activeTheme = useActiveTheme();
useEffect(() => {
document.body.className = '';
document.body.classList.add(configClass, varsClass);
document.body.classList.add(...activeTheme.classNames);
}, [activeTheme]);
return <ThemeContextProvider value={activeTheme}>{children}</ThemeContextProvider>;
}