@@ -4,11 +4,6 @@ import { useState, useEffect} from "react";
44export function useChangeTheme ( ) {
55 const [ theme , setTheme ] = useState ( "tomorrow" ) ;
66 useEffect ( ( ) => {
7- const checkIsDarkSchemePreferred = ( ) =>
8- window ?. matchMedia ?.( '(prefers-color-scheme:dark)' ) ?. matches ?? false ;
9- const initialTheme = checkIsDarkSchemePreferred ( ) ? "dark" : "light" ;
10- document . documentElement . setAttribute ( "data-theme" , initialTheme ) ;
11- setTheme ( initialTheme === "dark" ? "twilight" : "tomorrow" ) ;
127
138 const updateTheme = ( ) => {
149 const theme = document . documentElement . getAttribute ( "data-theme" ) ;
@@ -28,11 +23,14 @@ export function useChangeTheme(){
2823
2924} ;
3025export function ThemeToggle ( ) {
31- const [ isChecked , setIsChecked ] = useState ( false ) ;
3226 const theme = useChangeTheme ( ) ;
27+ const isChecked = theme === "twilight" ;
3328 useEffect ( ( ) => {
34- setIsChecked ( theme === "twilight" ) ;
35- } , [ theme ] ) ;
29+ const checkIsDarkSchemePreferred = ( ) =>
30+ window ?. matchMedia ?.( '(prefers-color-scheme:dark)' ) ?. matches ?? false ;
31+ const initialTheme = checkIsDarkSchemePreferred ( ) ? "dark" : "light" ;
32+ document . documentElement . setAttribute ( "data-theme" , initialTheme ) ;
33+ } , [ ] ) ;
3634
3735 return (
3836 < label className = "flex cursor-pointer gap-2" style = { { marginLeft : "1em" } } >
@@ -56,7 +54,6 @@ export function ThemeToggle() {
5654 className = "toggle theme-controller"
5755 onChange = { ( e ) => {
5856 const isdark = e . target . checked ;
59- setIsChecked ( isdark ) ;
6057 const theme = isdark ? "dark" : "light" ;
6158 document . documentElement . setAttribute ( "data-theme" , theme ) ;
6259 } }
0 commit comments