File tree 2 files changed +52
-0
lines changed
2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ "use client"
3
+
4
+ import * as React from "react"
5
+ import { ThemeProvider as NextThemesProvider } from "next-themes"
6
+
7
+ export function ThemeProvider ( {
8
+ children,
9
+ ...props
10
+ } : React . ComponentProps < typeof NextThemesProvider > ) {
11
+ return < NextThemesProvider { ...props } > { children } </ NextThemesProvider >
12
+ }
Original file line number Diff line number Diff line change
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Moon , Sun } from "lucide-react"
5
+ import { useTheme } from "next-themes"
6
+
7
+ import { Button } from "@/components/ui/button"
8
+ import {
9
+ DropdownMenu ,
10
+ DropdownMenuContent ,
11
+ DropdownMenuItem ,
12
+ DropdownMenuTrigger ,
13
+ } from "@/components/ui/dropdown-menu"
14
+
15
+ export function ThemeToggle ( ) {
16
+ const { setTheme } = useTheme ( )
17
+
18
+ return (
19
+ < DropdownMenu >
20
+ < DropdownMenuTrigger asChild >
21
+ < Button variant = "ghost" 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" ) } >
29
+ Light
30
+ </ DropdownMenuItem >
31
+ < DropdownMenuItem onClick = { ( ) => setTheme ( "dark" ) } >
32
+ Dark
33
+ </ DropdownMenuItem >
34
+ < DropdownMenuItem onClick = { ( ) => setTheme ( "system" ) } >
35
+ System
36
+ </ DropdownMenuItem >
37
+ </ DropdownMenuContent >
38
+ </ DropdownMenu >
39
+ )
40
+ }
You can’t perform that action at this time.
0 commit comments