@@ -37,29 +37,39 @@ export const useTheme = () => useContext(ThemeContext);
3737
3838export function ThemeProvider ( { children } : { children : React . ReactNode } ) {
3939 const [ isDarkMode , setIsDarkMode ] = useState ( false ) ;
40+ const [ mounted , setMounted ] = useState ( false ) ;
4041
4142 useEffect ( ( ) => {
4243 // Check if user has already set a preference
4344 const storedTheme = localStorage . getItem ( "theme" ) ;
4445 const prefersDark = window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ;
4546
46- if ( storedTheme === "dark" || ( ! storedTheme && prefersDark ) ) {
47- setIsDarkMode ( true ) ;
47+ const shouldBeDark = storedTheme === "dark" || ( ! storedTheme && prefersDark ) ;
48+
49+ // Apply dark mode styles
50+ if ( shouldBeDark ) {
4851 document . documentElement . classList . add ( "dark" ) ;
52+ // Also add the special class to navbar if it exists
53+ document . getElementById ( 'navbar' ) ?. classList . add ( 'navbar-dark-mode' ) ;
4954 } else {
50- setIsDarkMode ( false ) ;
5155 document . documentElement . classList . remove ( "dark" ) ;
56+ document . getElementById ( 'navbar' ) ?. classList . remove ( 'navbar-dark-mode' ) ;
5257 }
58+
59+ setIsDarkMode ( shouldBeDark ) ;
60+ setMounted ( true ) ;
5361 } , [ ] ) ;
5462
5563 const toggleTheme = ( ) => {
5664 setIsDarkMode ( ( prev ) => {
5765 const newMode = ! prev ;
5866 if ( newMode ) {
5967 document . documentElement . classList . add ( "dark" ) ;
68+ document . getElementById ( 'navbar' ) ?. classList . add ( 'navbar-dark-mode' ) ;
6069 localStorage . setItem ( "theme" , "dark" ) ;
6170 } else {
6271 document . documentElement . classList . remove ( "dark" ) ;
72+ document . getElementById ( 'navbar' ) ?. classList . remove ( 'navbar-dark-mode' ) ;
6373 localStorage . setItem ( "theme" , "light" ) ;
6474 }
6575 return newMode ;
0 commit comments