UNPKG

svelte-media

Version:

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

2 lines (1 loc) 417 B
import{writable as e}from"svelte/store";export default function(t){return e({classNames:""},e=>{if("undefined"==typeof window)return;let n={},r=()=>e(function(e){let t={classNames:""},n=[];for(let r in e)t[r]=e[r].matches,t[r]&&n.push("media-"+r);return t.classNames=n.join(" "),t}(n));for(let e in t){let i=window.matchMedia(t[e]);n[e]=i,n[e].addListener(r)}return r(),()=>{for(let e in n)n[e].removeListener(r)}})}