From e0b93aaa10acd4f43da48666443d6319fa7482e5 Mon Sep 17 00:00:00 2001
From: Daniel Kurowski <daniel.kurowski@grifart.cz>
Date: Mon, 8 Jun 2020 09:35:59 +0200
Subject: [PATCH] ScrollToTarget: take advantage of scrollToElement()

---
 src/scrollers/scrollToTarget.ts | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/scrollers/scrollToTarget.ts b/src/scrollers/scrollToTarget.ts
index d9c9ffc..a31ec01 100644
--- a/src/scrollers/scrollToTarget.ts
+++ b/src/scrollers/scrollToTarget.ts
@@ -1,12 +1,19 @@
-import * as Velocity from 'velocity-animate';
 import {HashTarget} from '../HashTarget';
-import {EASE_IN_SKIP_OUT_EASING} from '../easing/setupVelocity';
+import {scrollToElement} from './scrollToElement';
+import {assert} from '../assert';
 
-export function scrollToTarget(hashTarget: HashTarget): void
+export function scrollToTarget(hashTarget: HashTarget|string, onScrollFinishedCallback?: () => void): void
 {
-	Velocity.animate(hashTarget.getElement(), 'scroll', {
-		duration: 1200, // todo: different depending on offset from page top?
-		easing: EASE_IN_SKIP_OUT_EASING,
-		complete: () => window.location.hash = hashTarget.getHash(),
-	});
+	if (typeof hashTarget === 'string') {
+		hashTarget = HashTarget.fromString(hashTarget, document);
+	}
+
+	scrollToElement(
+		hashTarget.getElement(),
+		() => {
+			assert(hashTarget instanceof HashTarget);
+			window.location.hash = hashTarget.getHash();
+			onScrollFinishedCallback !== undefined && onScrollFinishedCallback();
+		},
+	);
 }
-- 
GitLab