All files / blong-browser/src/hooks useDarkMode.ts

0% Statements 0/19
0% Branches 0/1
0% Functions 0/1
0% Lines 0/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                       
/**
 * useDarkMode — toggle dark mode with localStorage persistence.
 */
import {useCallback} from 'react';
import {useLocalStorage} from './useLocalStorage.js';

export interface IUseDarkModeResult {
    isDark: boolean;
    toggle: () => void;
    setDark: (dark: boolean) => void;
}

export function useDarkMode(): IUseDarkModeResult {
    const [isDark, setIsDark] = useLocalStorage('blong-browser-dark-mode', false);

    const toggle = useCallback(() => setIsDark(prev => !prev), [setIsDark]);

    return {isDark, toggle, setDark: setIsDark};
}