forked from Andrey-1988-dev/snowfall-js
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcanRunAnimation.js
30 lines (28 loc) · 1.2 KB
/
canRunAnimation.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { checkDateRange } from "./checkDateRange.js";
import { checkHardware } from "./checkHardware.js";
import { logInfo } from "./logger.js";
import { checkReducedMotionConfig } from "./prefersReducedMotion.js";
/**
* Determines whether the snowfall animation can be run based on configuration parameters, hardware check, dateRange check and accessibility check.
*
* @param {Object} configParams - Configuration parameters.
* @returns {boolean} - True if the animation can be run, false otherwise.
*/
export function canRunAnimation(configParams) {
let hardwareCheck;
let insideDateRange;
let accessibilityCheck = true;
if (configParams.checkHardware) {
hardwareCheck = checkHardware();
} else hardwareCheck = true;
if (configParams.checkDateRange) {
insideDateRange = checkDateRange(configParams.dateRange);
} else insideDateRange = true;
if (configParams.checkReducedMotionPreference) {
accessibilityCheck = checkReducedMotionConfig(configParams);
}
logInfo(
`Result of canRunAnimationCheck: hardwareCheck: ${hardwareCheck}; insideDateRange: ${insideDateRange}; accessibilityCheck: ${accessibilityCheck}`
);
return hardwareCheck && insideDateRange && accessibilityCheck;
}