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

100% Statements 5/5
100% Branches 0/0
100% Functions 3/3
100% Lines 3/3

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                          13x   13x   13x    
/**
 * 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};
}