Skip to content

Commit 677a0d8

Browse files
committed
Implement button to toggle theme.
1 parent 6f61e4e commit 677a0d8

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

src/app/home.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { Button } from "@/components/ui/button";
1+
import { AppThemeToggleButton } from "@/components/libresplit/AppThemeToggleButton";
22

33
export default function Home() {
44
return (
55
<div>
66
<h1>LibreSplit</h1>
7-
<Button>Test</Button>
7+
<AppThemeToggleButton />
88
</div>
99
);
1010
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Button } from "../ui/button";
2+
import {
3+
DropdownMenu,
4+
DropdownMenuContent,
5+
DropdownMenuItem,
6+
DropdownMenuTrigger,
7+
} from "../ui/dropdown-menu";
8+
import { Moon, Sun } from "lucide-react";
9+
import { useTheme } from "next-themes";
10+
11+
export function AppThemeToggleButton() {
12+
const { setTheme } = useTheme();
13+
14+
return (
15+
<DropdownMenu>
16+
<DropdownMenuTrigger asChild>
17+
<Button variant="outline" size="icon">
18+
<Sun className="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" />
19+
<Moon className="absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" />
20+
<span className="sr-only">Toggle theme</span>
21+
</Button>
22+
</DropdownMenuTrigger>
23+
<DropdownMenuContent align="end">
24+
<DropdownMenuItem onClick={() => setTheme("light")}>
25+
Light
26+
</DropdownMenuItem>
27+
<DropdownMenuItem onClick={() => setTheme("dark")}>
28+
Dark
29+
</DropdownMenuItem>
30+
<DropdownMenuItem onClick={() => setTheme("system")}>
31+
System
32+
</DropdownMenuItem>
33+
</DropdownMenuContent>
34+
</DropdownMenu>
35+
);
36+
}

0 commit comments

Comments
 (0)