File tree Expand file tree Collapse file tree
packages/react/src/html/ui Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -10,7 +10,11 @@ const Toggle = () => {
1010 const [ themePreference , setThemePreference ] = useTheme ( ) ;
1111
1212 return (
13- < ThemeToggle onChange = { setThemePreference } currentTheme = { themePreference } />
13+ < ThemeToggle
14+ onChange = { setThemePreference }
15+ currentTheme = { themePreference }
16+ key = { themePreference }
17+ />
1418 ) ;
1519} ;
1620
Original file line number Diff line number Diff line change @@ -29,10 +29,14 @@ const applySystemTheme = () => applyTheme('system');
2929 * @returns {['system'|'light'|'dark', (next: 'system'|'light'|'dark') => void] }
3030 */
3131export const useTheme = ( ) => {
32- // Read stored preference once on mount; default to 'system'.
33- const [ pref , setPref ] = useState ( ( ) =>
34- server ? 'system' : ( localStorage . getItem ( 'theme' ) ?? 'system' )
35- ) ;
32+ const [ pref , setPref ] = useState ( 'system' ) ;
33+
34+ useEffect ( ( ) => {
35+ const stored = localStorage . getItem ( 'theme' ) ;
36+ if ( stored ) {
37+ setPref ( stored ) ;
38+ }
39+ } , [ ] ) ;
3640
3741 // Apply theme on every preference change, and if 'system',
3842 // also listen for OS-level color scheme changes.
You can’t perform that action at this time.
0 commit comments