Skip to content

Commit 68bdbd3

Browse files
Update useTheme.mjs
Co-Authored-By: Aviv Keller <me@aviv.sh>
1 parent 729901f commit 68bdbd3

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/generators/web/ui/hooks/useTheme.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ const applySystemTheme = () => applyTheme('system');
2929
export const useTheme = () => {
3030
// Read stored preference once on mount; default to 'system'.
3131
const [pref, setPref] = useState(() => {
32+
if (typeof window === 'undefined') {
33+
return 'system';
34+
}
35+
3236
return localStorage.getItem('theme') || 'system';
3337
});
3438

@@ -49,7 +53,9 @@ export const useTheme = () => {
4953
/** Updates the preference in both React state and localStorage. */
5054
const setTheme = useCallback(next => {
5155
setPref(next);
52-
localStorage.setItem('theme', next);
56+
if (typeof window !== 'undefined') {
57+
localStorage.setItem('theme', next);
58+
}
5359
}, []);
5460

5561
return [pref, setTheme];

0 commit comments

Comments
 (0)