()
| 122 | } |
| 123 | |
| 124 | export function useColorMode(): { |
| 125 | mode: ColorMode; |
| 126 | isDark: boolean; |
| 127 | toggle: () => void; |
| 128 | } { |
| 129 | const mode = useSyncExternalStore( |
| 130 | subscribe, |
| 131 | getSnapshot, |
| 132 | getServerSnapshot, |
| 133 | ); |
| 134 | return { |
| 135 | mode, |
| 136 | isDark: mode === "dark", |
| 137 | toggle: () => setColorMode(mode === "dark" ? "light" : "dark"), |
| 138 | }; |
| 139 | } |
| 140 | |
| 141 | /** |
| 142 | * Sliding sun/moon switch. Light/dark is a two-state choice, not an on/off |
no test coverage detected