All files index.tsx

90% Statements 9/10
75% Branches 3/4
80% Functions 4/5
90% Lines 9/10

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 21 22 23 24 25 26 27 28 29 30 31 32                  6x 6x               2x 2x 2x 2x 2x           2x 2x    
import React, { useSyncExternalStore } from 'react';
 
export enum ColorScheme {
  Dark = 'dark',
  Light = 'light',
  NoPreference = 'no-preference',
}
 
function getSnapshot() {
  const matcher = window.matchMedia('(prefers-color-scheme: dark)').matches;
  return matcher ? ColorScheme.Dark : ColorScheme.Light;
}
 
function getServerSnapshot() {
  return ColorScheme.NoPreference;
}
 
function subscribe(callback: () => void) {
  const matcher = window.matchMedia('(prefers-color-scheme: dark)');
  matcher.addEventListener('change', callback);
  return () => {
    Eif (matcher) {
      matcher.removeEventListener('change', callback);
    }
  };
}
 
export function useColorScheme() {
  const colorscheme = useSyncExternalStore<ColorScheme>(subscribe, getSnapshot, getServerSnapshot);
  return colorscheme;
}