File tree Expand file tree Collapse file tree 1 file changed +9
-11
lines changed Expand file tree Collapse file tree 1 file changed +9
-11
lines changed Original file line number Diff line number Diff line change 1
- import { useCallback , useEffect , useState } from "react" ;
1
+ import { useCallback , useEffect , useMemo , useState } from "react" ;
2
2
3
3
type Theme = "light" | "dark" | "system" ;
4
4
@@ -36,16 +36,14 @@ const useTheme = (): [Theme, (mode: Theme) => void] => {
36
36
} ;
37
37
} , [ theme ] ) ;
38
38
39
- return [
40
- theme ,
41
- useCallback ( ( newTheme : Theme ) => {
42
- setTheme ( newTheme ) ;
43
- localStorage . setItem ( "theme" , newTheme ) ;
44
- if ( newTheme !== "system" ) {
45
- document . documentElement . classList . toggle ( "dark" , newTheme === "dark" ) ;
46
- }
47
- } , [ ] ) ,
48
- ] ;
39
+ const setThemeWithSideEffect = useCallback ( ( newTheme : Theme ) => {
40
+ setTheme ( newTheme ) ;
41
+ localStorage . setItem ( "theme" , newTheme ) ;
42
+ if ( newTheme !== "system" ) {
43
+ document . documentElement . classList . toggle ( "dark" , newTheme === "dark" ) ;
44
+ }
45
+ } , [ ] ) ;
46
+ return useMemo ( ( ) => [ theme , setThemeWithSideEffect ] , [ theme ] ) ;
49
47
} ;
50
48
51
49
export default useTheme ;
You can’t perform that action at this time.
0 commit comments