File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
playground/src/components Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 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 ;
You can’t perform that action at this time.
0 commit comments