All files index.js

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 291x   1x 3x 3x     1x 1x     1x 3x 3x     3x         3x              
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
 
const watch = () => {
  mediaQuery.addEventListener("change", get, false);
  get()
}
 
const teardown = () => {
  mediaQuery.removeEventListener("change", get, false);
}
 
export const get = () => {
  const theme = ["dark", "light", "no-preference"].find(
    (scheme) => window.matchMedia(`(prefers-color-scheme: ${scheme})`).matches
  );
 
  const event = new CustomEvent("colorSchemeUpdated", {
    detail: {
      theme,
    },
  });
  window.dispatchEvent(event);
}
 
export default {
  watch,
  teardown,
  get
};