UNPKG

svelte-media

Version:

Svelte.js util to easily observe media queries as a reactive store

2 lines (1 loc) 430 B
"use strict";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)}})};