@mui/x-date-pickers
Version:
The community edition of the MUI X Date and Time Picker components.
28 lines (25 loc) • 1.4 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.slowAnimationDevices = void 0;
exports.useReduceAnimations = useReduceAnimations;
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
const PREFERS_REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';
// TODO v10: Remove user-agent sniffing. The Android branch is dead and the iOS branch is becoming
// irrelevant.
// https://github.com/mui/mui-x/pull/22710#discussion_r3377072061
const mobileVersionMatches = typeof navigator !== 'undefined' && navigator.userAgent.match(/android\s(\d+)|OS\s(\d+)/i);
const androidVersion = mobileVersionMatches && mobileVersionMatches[1] ? parseInt(mobileVersionMatches[1], 10) : null;
const iOSVersion = mobileVersionMatches && mobileVersionMatches[2] ? parseInt(mobileVersionMatches[2], 10) : null;
const slowAnimationDevices = exports.slowAnimationDevices = androidVersion && androidVersion < 10 || iOSVersion && iOSVersion < 13 || false;
function useReduceAnimations(customReduceAnimations) {
const prefersReduced = (0, _useMediaQuery.default)(PREFERS_REDUCED_MOTION, {
defaultMatches: false
});
if (customReduceAnimations != null) {
return customReduceAnimations;
}
return prefersReduced || slowAnimationDevices;
}