svelte-media-observer
Version:
SvelteJS media queries observer.
2 lines (1 loc) • 438 B
JavaScript
import{writable as e}from"svelte/store";function n(n){return e({},e=>{if(!globalThis.window)return;const t=new Map,o=()=>e(function(e){const n={};for(const[t,o]of e)n[t]=o.matches;return n}(t));for(const[e,r]of n){window.matchMedia(r).addEventListener("change",o),t.set(e,window.matchMedia(r))}return o(),()=>{var e;for(const n of t.keys())null===(e=t.get(n))||void 0===e||e.removeEventListener("change",o)}})}export{n as mediaObserver};