diff --git a/web/components/custom/clerk/clerk-provider-client.tsx b/web/components/custom/clerk/clerk-provider-client.tsx index 769a8c3f..69a5acdc 100644 --- a/web/components/custom/clerk/clerk-provider-client.tsx +++ b/web/components/custom/clerk/clerk-provider-client.tsx @@ -1,31 +1,22 @@ "use client" + import { ClerkProvider } from "@clerk/nextjs" import { dark } from "@clerk/themes" -import { useEffect, useState } from "react" +import { useTheme } from "next-themes" -export const ClerkProviderClient = ({ children }: { children: React.ReactNode }) => { - const [darkMode, setDarkMode] = useState(false) - - useEffect(() => { - const updateTheme = () => { - setDarkMode(document.documentElement.classList.contains("dark")) - } - updateTheme() - - const observer = new MutationObserver(updateTheme) - observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] }) - - return () => observer.disconnect() - }, []) - - return ( - - {children} - - ) +interface ClerkProviderClientProps { + children: React.ReactNode +} + +export const ClerkProviderClient: React.FC = ({ children }) => { + const { theme, systemTheme } = useTheme() + + const isDarkTheme = theme === "dark" || (theme === "system" && systemTheme === "dark") + + const appearance = { + baseTheme: isDarkTheme ? dark : undefined, + variables: { colorPrimary: isDarkTheme ? "#dddddd" : "#2e2e2e" } + } + + return {children} }