unpkg/public/react-motion@0.5.2/lib/shouldStopAnimation.js.flow

32 lines
836 B
Plaintext

/* @flow */
import type {PlainStyle, Style, Velocity} from './Types';
// usage assumption: currentStyle values have already been rendered but it says
// nothing of whether currentStyle is stale (see unreadPropStyle)
export default function shouldStopAnimation(
currentStyle: PlainStyle,
style: Style,
currentVelocity: Velocity,
): boolean {
for (let key in style) {
if (!Object.prototype.hasOwnProperty.call(style, key)) {
continue;
}
if (currentVelocity[key] !== 0) {
return false;
}
const styleValue = typeof style[key] === 'number'
? style[key]
: style[key].val;
// stepper will have already taken care of rounding precision errors, so
// won't have such thing as 0.9999 !=== 1
if (currentStyle[key] !== styleValue) {
return false;
}
}
return true;
}