| 123456789101112131415161718192021222324252627282930313233343536 |
- "use client";
- import { useTheme } from "next-themes";
- import { useEffect, useState } from "react";
- import { Moon, Sun } from "lucide-react";
- export function ThemeToggle() {
- const { theme, setTheme } = useTheme();
- const [mounted, setMounted] = useState(false);
- useEffect(() => {
- setMounted(true);
- }, []);
- if (!mounted) {
- return (
- <button className="p-2 rounded-md border border-border bg-card">
- <Sun className="h-4 w-4" />
- </button>
- );
- }
- return (
- <button
- onClick={() => setTheme(theme === "dark" ? "light" : "dark")}
- className="p-2 rounded-md border border-border bg-card hover:bg-accent transition-colors"
- aria-label="Toggle theme"
- >
- {theme === "dark" ? (
- <Sun className="h-4 w-4" />
- ) : (
- <Moon className="h-4 w-4" />
- )}
- </button>
- );
- }
|