@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
33 lines (32 loc) • 869 B
JavaScript
"use client";
import { c as _c } from "react-compiler-runtime";
import { useState } from "react";
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect.js";
const useMediaQuery = query => {
const $ = _c(3);
const [match, setMatch] = useState();
let t0;
let t1;
if ($[0] !== query) {
t0 = () => {
if (typeof matchMedia === "undefined") {
return;
}
const mediaQueryList = matchMedia(query);
setMatch(mediaQueryList.matches);
const listener = e => setMatch(e.matches);
mediaQueryList.addEventListener("change", listener);
return () => mediaQueryList.removeEventListener("change", listener);
};
t1 = [query];
$[0] = query;
$[1] = t0;
$[2] = t1;
} else {
t0 = $[1];
t1 = $[2];
}
useIsomorphicLayoutEffect(t0, t1);
return match;
};
export default useMediaQuery;