svelte-media
Version:
Svelte.js util to easily observe media queries as a reactive store
2 lines (1 loc) • 430 B
JavaScript
;var e=require("svelte/store");module.exports=function(t){return e.writable({classNames:""},e=>{if("undefined"==typeof window)return;let r={},n=()=>e(function(e){let t={classNames:""},r=[];for(let n in e)t[n]=e[n].matches,t[n]&&r.push("media-"+n);return t.classNames=r.join(" "),t}(r));for(let e in t){let s=window.matchMedia(t[e]);r[e]=s,r[e].addListener(n)}return n(),()=>{for(let e in r)r[e].removeListener(n)}})};