diff --git a/apps/web/src/components/theme-toggle.tsx b/apps/web/src/components/theme-toggle.tsx index 6fd84fa3..236647ee 100644 --- a/apps/web/src/components/theme-toggle.tsx +++ b/apps/web/src/components/theme-toggle.tsx @@ -1,5 +1,6 @@ "use client"; +import { useEffect, useState } from "react"; import { Button } from "./ui/button"; import { useTheme } from "next-themes"; import { cn } from "@/utils/ui"; @@ -18,6 +19,25 @@ export function ThemeToggle({ onToggle, }: ThemeToggleProps) { const { theme, setTheme } = useTheme(); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + + // Prevent hydration mismatch by not rendering theme-dependent content until mounted + if (!mounted) { + return ( + + ); + } return (