MCPcopy Create free account
hub / github.com/boringstack-xyz/boringstack / useTheme

Function useTheme

apps/ui/src/lib/theme/useTheme.ts:9–32  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7import { applyTheme, resolveInitialTheme } from "./theme.utils";
8
9export function useTheme(): IThemeState {
10 const [theme, setThemeState] = useState<ThemeName>(resolveInitialTheme);
11
12 useEffect(() => {
13 applyTheme(theme);
14 }, [theme]);
15
16 const setTheme = useCallback((next: ThemeName) => {
17 localStore.set(THEME_STORAGE_KEY, next);
18 setThemeState(next);
19 }, []);
20
21 const toggle = useCallback(() => {
22 setThemeState((current) => {
23 const next: ThemeName = current === "dark" ? "light" : "dark";
24
25 localStore.set(THEME_STORAGE_KEY, next);
26
27 return next;
28 });
29 }, []);
30
31 return { theme, setTheme, toggle };
32}

Callers 3

useThemeToggleFunction · 0.90
useTheme.test.tsFile · 0.90
ToasterFunction · 0.85

Calls 2

applyThemeFunction · 0.90
setMethod · 0.45

Tested by

no test coverage detected