From ef32f71191ea2b3848a1f61e2ecdbf8f94958d9c Mon Sep 17 00:00:00 2001 From: Sergey Markov <32942573+mars-dlx@users.noreply.github.com> Date: Sat, 14 Sep 2024 00:05:45 +0200 Subject: [PATCH] [fix] Fixed disappearing animation time control (#2625) * Fixed disapiaring animation time control Signed-off-by: Sergey Markov --- .../common/animation-control/animation-controller.ts | 2 +- src/components/src/layer-animation-controller.tsx | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/components/src/common/animation-control/animation-controller.ts b/src/components/src/common/animation-control/animation-controller.ts index f56fe8d4d6..ae7bc184a4 100644 --- a/src/components/src/common/animation-control/animation-controller.ts +++ b/src/components/src/common/animation-control/animation-controller.ts @@ -25,7 +25,7 @@ interface AnimationControllerProps { pauseAnimation: () => void, resetAnimation: () => void, timeline: Timeline | undefined, - setTimelineValue: (x: any) => void + setTimelineValue: (x: T) => void ) => React.ReactElement | null; } diff --git a/src/components/src/layer-animation-controller.tsx b/src/components/src/layer-animation-controller.tsx index 0bc2a28bc2..57c37def01 100644 --- a/src/components/src/layer-animation-controller.tsx +++ b/src/components/src/layer-animation-controller.tsx @@ -16,7 +16,7 @@ interface LayerAnimationControllerProps { pauseAnimation: () => void, resetAnimation: () => void, timeline: Timeline | undefined, - setTimelineValue: (x: any) => void + setTimelineValue: (x: number | number[]) => void ) => React.ReactElement | null; } @@ -33,13 +33,14 @@ function LayerAnimationControllerFactory( const {timeSteps, domain} = animationConfig; const setTimelineValue = useCallback( - (value: number) => { + (value: number | number[]) => { + const timelineValue = toArray(value)[0]; if (Array.isArray(timeSteps)) { - setLayerAnimationTime(snapToMarks(toArray(value)[0], timeSteps)); + setLayerAnimationTime(snapToMarks(timelineValue, timeSteps)); // TODO: merge slider in to avoid this step - } else if (domain && value >= domain[0] && value <= domain[1]) { - setLayerAnimationTime(value); + } else if (domain && timelineValue >= domain[0] && timelineValue <= domain[1]) { + setLayerAnimationTime(timelineValue); } }, [domain, setLayerAnimationTime, timeSteps]