fix(animation): account for negative values on menu gesture (#19196)

This commit is contained in:
Liam DeBeasi
2019-08-27 10:12:52 -04:00
committed by GitHub
parent b1c8fa39d6
commit b3c7436e01

View File

@ -415,6 +415,14 @@ export class Menu implements ComponentInterface, MenuI {
// Account for rounding errors in JS
let newStepValue = (shouldComplete) ? 0.001 : -0.001;
/**
* TODO: stepValue can sometimes return a negative
* value, but you can't have a negative time value
* for the cubic bezier curve (at least with web animations)
* Not sure if the negative step value is an error or not
*/
const adjustedStepValue = (stepValue <= 0) ? 0.01 : stepValue;
/**
* Animation will be reversed here, so need to
* reverse the easing curve as well
@ -423,7 +431,7 @@ export class Menu implements ComponentInterface, MenuI {
* to the new easing curve, as `stepValue` is going to be given
* in terms of a linear curve.
*/
newStepValue += getTimeGivenProgression(new Point(0, 0), new Point(0.4, 0), new Point(0.6, 1), new Point(1, 1), stepValue);
newStepValue += getTimeGivenProgression(new Point(0, 0), new Point(0.4, 0), new Point(0.6, 1), new Point(1, 1), adjustedStepValue);
this.animation
.easing('cubic-bezier(0.4, 0.0, 0.6, 1)')