|
|
| import { Moon, Sun } from "lucide-react"; |
| import { Button } from "./ui/button"; |
| import { useEffect, useState } from "react"; |
|
|
| export function ThemeToggle() { |
| const [theme, setTheme] = useState("light"); |
|
|
| useEffect(() => { |
| const isDark = document.documentElement.classList.contains("dark"); |
| setTheme(isDark ? "dark" : "light"); |
| }, []); |
|
|
| function toggleTheme() { |
| const newTheme = theme === "light" ? "dark" : "light"; |
| setTheme(newTheme); |
| document.documentElement.classList.toggle("dark"); |
| } |
|
|
| return ( |
| <Button |
| variant="ghost" |
| size="icon" |
| onClick={toggleTheme} |
| className="fixed top-4 right-4" |
| > |
| {theme === "light" ? ( |
| <Moon className="h-5 w-5" /> |
| ) : ( |
| <Sun className="h-5 w-5" /> |
| )} |
| </Button> |
| ); |
| } |
|
|