Skip to content

Commit cbf9622

Browse files
committed
feat: playground add theme toggle
1 parent a9fc9f1 commit cbf9622

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'use client';
2+
3+
import { useTheme } from 'next-themes';
4+
import { useEffect, useState } from 'react';
5+
import { Icon, Switch } from 'soybean-react-ui';
6+
7+
const ThemeSchemaToggler = () => {
8+
const { setTheme, theme } = useTheme();
9+
10+
const [isMounted, setIsMounted] = useState(false);
11+
12+
const isDark = theme === 'dark';
13+
14+
function changeTheme() {
15+
setTheme(isDark ? 'light' : 'dark');
16+
}
17+
18+
useEffect(() => {
19+
setIsMounted(true);
20+
}, []);
21+
22+
if (!isMounted) return null;
23+
24+
return (
25+
<Switch
26+
checked={isDark}
27+
color="accent"
28+
defaultChecked={isDark}
29+
size="lg"
30+
onCheckedChange={changeTheme}
31+
>
32+
<Icon icon={isDark ? 'lucide:moon' : 'lucide:sun'} />
33+
</Switch>
34+
);
35+
};
36+
37+
export default ThemeSchemaToggler;

0 commit comments

Comments
 (0)