File tree Expand file tree Collapse file tree 2 files changed +29
-23
lines changed
Expand file tree Collapse file tree 2 files changed +29
-23
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ import { useState , useEffect } from 'react' ;
2+
3+ export function useTheme ( ) {
4+ const [ isDark , setIsDark ] = useState ( false ) ;
5+
6+ // Initialize theme from localStorage on component mount
7+ useEffect ( ( ) => {
8+ const savedTheme = localStorage . getItem ( 'star-sailors-theme' ) ;
9+ const prefersDark = window . matchMedia ( '(prefers-color-scheme: dark)' ) . matches ;
10+
11+ const shouldBeDark = savedTheme === 'dark' || ( savedTheme === null && prefersDark ) ;
12+
13+ setIsDark ( shouldBeDark ) ;
14+ document . documentElement . classList . toggle ( 'dark' , shouldBeDark ) ;
15+ } , [ ] ) ;
16+
17+ const toggleTheme = ( ) => {
18+ const newTheme = ! isDark ;
19+ setIsDark ( newTheme ) ;
20+
21+ // Save to localStorage
22+ localStorage . setItem ( 'star-sailors-theme' , newTheme ? 'dark' : 'light' ) ;
23+
24+ // Apply to document
25+ document . documentElement . classList . toggle ( 'dark' , newTheme ) ;
26+ } ;
27+
28+ return { isDark, toggleTheme } ;
29+ }
You canβt perform that action at this time.
0 commit comments