UNPKG

@modern-kit/react

Version:
30 lines (26 loc) 902 B
'use strict'; var utils = require('@modern-kit/utils'); var hooksUseEventListener = require('../useEventListener/index.cjs'); var React = require('react'); require('../usePreservedCallback/index.cjs'); require('../useIsomorphicLayoutEffect/index.cjs'); const getMatchMedia = (mediaQueryString, defaultValue) => { if (utils.isClient()) { return window.matchMedia(mediaQueryString).matches; } return defaultValue ?? false; }; function useMediaQuery(mediaQueryString, defaultValue) { const [isMatch, setIsMatch] = React.useState( getMatchMedia(mediaQueryString, defaultValue) ); const handleChange = (e) => setIsMatch(e.matches); hooksUseEventListener.useEventListener( typeof window !== "undefined" ? window.matchMedia(mediaQueryString) : null, "change", handleChange ); return isMatch; } exports.useMediaQuery = useMediaQuery; //# sourceMappingURL=index.cjs.map