@@ -5,34 +5,32 @@ import { Moon, Sun } from 'lucide-react'
5
5
import { useTheme } from "next-themes"
6
6
7
7
import { Button } from "@/components/ui/button"
8
- import {
9
- DropdownMenu ,
10
- DropdownMenuContent ,
11
- DropdownMenuItem ,
12
- DropdownMenuTrigger ,
13
- } from "@/components/ui/dropdown-menu"
14
8
15
9
export function ThemeToggle ( ) {
16
- const { setTheme } = useTheme ( )
10
+ const { theme, setTheme } = useTheme ( )
11
+
12
+ const toggleTheme = ( ) => {
13
+ setTheme ( theme === "dark" ? "light" : "dark" )
14
+ }
17
15
18
16
return (
19
- < DropdownMenu >
20
- < DropdownMenuTrigger asChild >
21
- < Button variant = "outline" size = "icon" >
22
- < Sun className = "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
23
- < Moon className = "absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
24
- < span className = "sr-only" > Toggle theme</ span >
25
- </ Button >
26
- </ DropdownMenuTrigger >
27
- < DropdownMenuContent align = "end" >
28
- < DropdownMenuItem onClick = { ( ) => setTheme ( "light" ) } className = "cursor-pointer" >
29
- Light
30
- </ DropdownMenuItem >
31
- < DropdownMenuItem onClick = { ( ) => setTheme ( "dark" ) } className = "cursor-pointer" >
32
- Dark
33
- </ DropdownMenuItem >
34
- </ DropdownMenuContent >
35
- </ DropdownMenu >
17
+ < Button
18
+ variant = "outline"
19
+ size = "icon"
20
+ onClick = { toggleTheme }
21
+ aria-label = "Toggle theme"
22
+ className = "relative p-2 rounded-full transition-colors duration-300 hover:bg-gray-200 dark:hover:bg-gray-700"
23
+ >
24
+
25
+ < Sun className = { `h-5 w-5 text-black-500 transition-all duration-500 ease-in-out transform ${
26
+ theme === "dark" ? "rotate-180 opacity-0 scale-0" : "rotate-0 opacity-100 scale-100"
27
+ } `}
28
+ />
29
+
30
+ < Moon className = { `absolute h-5 w-5 text-white-700 transition-all duration-500 ease-in-out transform ${
31
+ theme === "light" ? "rotate-0 opacity-0 scale-0" : "rotate-120 opacity-100 scale-100"
32
+ } `}
33
+ />
34
+ </ Button >
36
35
)
37
36
}
38
-
0 commit comments