From b3c7436e01268d31e92c80f8e85a552523d642f6 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Tue, 27 Aug 2019 10:12:52 -0400 Subject: [PATCH] fix(animation): account for negative values on menu gesture (#19196) --- core/src/components/menu/menu.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/components/menu/menu.tsx b/core/src/components/menu/menu.tsx index 68aa6ceee4..8d4eeeb09f 100644 --- a/core/src/components/menu/menu.tsx +++ b/core/src/components/menu/menu.tsx @@ -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)')