@solid-primitives/media
Advanced tools
Comparing version 1.1.10 to 1.1.11
@@ -15,4 +15,4 @@ /** | ||
*/ | ||
declare const createMediaQuery: (query: string, initialState?: boolean, watchChange?: boolean) => (() => boolean); | ||
declare const createMediaQuery: (query: string, fallbackState?: boolean, watchChange?: boolean) => (() => boolean); | ||
export { createMediaQuery as default }; |
// src/index.ts | ||
import { createSignal, onMount, onCleanup } from "solid-js"; | ||
import { createSignal, getOwner, onCleanup } from "solid-js"; | ||
import { isServer } from "solid-js/web"; | ||
var createMediaQuery = (query, initialState = false, watchChange = true) => { | ||
let mql; | ||
const [state, setState] = createSignal(initialState); | ||
const onChange = () => setState(mql.matches); | ||
onMount(() => { | ||
if (isServer) | ||
return false; | ||
mql = window.matchMedia(query); | ||
var createMediaQuery = (query, fallbackState = false, watchChange = true) => { | ||
let initialState = fallbackState; | ||
if (!isServer) { | ||
const mql = window.matchMedia(query); | ||
initialState = mql.matches; | ||
if (watchChange) { | ||
const onChange = () => setState(mql.matches); | ||
mql.addEventListener("change", onChange); | ||
if (getOwner()) { | ||
onCleanup(() => mql.removeEventListener("change", onChange)); | ||
} | ||
} | ||
setState(mql.matches); | ||
}); | ||
onCleanup(() => watchChange && mql.removeEventListener("change", onChange)); | ||
} | ||
const [state, setState] = createSignal(initialState); | ||
return state; | ||
@@ -19,0 +19,0 @@ }; |
{ | ||
"name": "@solid-primitives/media", | ||
"version": "1.1.10", | ||
"version": "1.1.11", | ||
"description": "Primitives for media query and device features", | ||
@@ -56,3 +56,3 @@ "author": "David Di Biase <dave.dibiase@gmail.com>", | ||
"peerDependencies": { | ||
"solid-js": "1.3.0" | ||
"solid-js": "^1.3.1" | ||
}, | ||
@@ -59,0 +59,0 @@ "jest": { |
@@ -50,2 +50,6 @@ # @solid-primitives/media | ||
1.1.11 | ||
Removed onMount and returned the current media query immediately as opposed to onEffect. | ||
</details> |
Sorry, the diff of this file is not supported yet
8945
55