@carbon/ibm-products
Version:
Carbon for IBM Products
36 lines (30 loc) • 1.12 kB
JavaScript
/**
* Copyright IBM Corp. 2020, 2025
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
;
var React = require('react');
var useIsomorphicEffect = require('./useIsomorphicEffect.js');
// safety checks for remix env
// https://remix.run/docs/en/main/guides/gotchas#typeof-window-checks
const usePrefersReducedMotion = () => {
const [prefersReducedMotion, setPrefersReducedMotion] = React.useState(false);
useIsomorphicEffect.useIsomorphicEffect(() => {
const mediaQueryList = window.matchMedia('(prefers-reduced-motion: no-preference)');
const {
matches
} = window.matchMedia('(prefers-reduced-motion: no-preference)');
setPrefersReducedMotion(!matches);
const listener = event => {
setPrefersReducedMotion(!event.matches);
};
mediaQueryList.addEventListener('change', listener);
return () => {
mediaQueryList.removeEventListener('change', listener);
};
}, []);
return prefersReducedMotion;
};
exports.usePrefersReducedMotion = usePrefersReducedMotion;