better-chatbot / src /components /layouts /theme-provider.tsx
Bot
Initial commit for HF Spaces
05c5ed5
Raw
History Blame Contribute Delete
889 Bytes
"use client";
import * as React from "react";
import { ThemeProvider as NextThemesProvider } from "next-themes";
import { useThemeStyle } from "@/hooks/use-theme-style";
export function ThemeProvider({
children,
...props
}: React.ComponentProps<typeof NextThemesProvider>) {
return <NextThemesProvider {...props}>{children}</NextThemesProvider>;
}
export const ThemeStyleProvider = React.memo(function ({
children,
}: {
children: React.ReactNode;
}) {
const { themeStyle } = useThemeStyle();
const [mounted, setMounted] = React.useState(false);
React.useLayoutEffect(() => {
if (document.body.getAttribute("data-theme") !== themeStyle) {
document.body.setAttribute("data-theme", themeStyle);
}
setMounted(true);
}, [themeStyle]);
if (!mounted) {
return null;
}
return children;
});
ThemeStyleProvider.displayName = "ThemeStyleProvider";