blob: cfd20ecd81bd3541c5faba9c4d0e0c85bb2ef480 (
plain)
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
29
30
31
32
33
34
35
36
37
38
39
|
<script>
import { onMount } from "svelte";
export let query;
let mql;
let mqlListener;
let wasMounted = false;
let matches = false;
onMount(() => {
wasMounted = true;
return () => {
removeActiveListener();
};
});
$: {
if (wasMounted) {
removeActiveListener();
addNewListener(query);
}
}
function addNewListener(query) {
mql = window.matchMedia(query);
mqlListener = (v) => (matches = v.matches);
mql.addListener(mqlListener);
matches = mql.matches;
}
function removeActiveListener() {
if (mql && mqlListener) {
mql.removeListener(mqlListener);
}
}
</script>
<slot {matches} />
|