summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/timeline/drag-utils.ts
blob: 8efeab79af86574456d739b8c0e38f6e833c2f5a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { BASE_TIMELINE_PIXELS_PER_SECOND } from "@/lib/timeline/scale";

export function getMouseTimeFromClientX({
	clientX,
	containerRect,
	zoomLevel,
	scrollLeft,
}: {
	clientX: number;
	containerRect: DOMRect;
	zoomLevel: number;
	scrollLeft: number;
}): number {
	const mouseX = clientX - containerRect.left + scrollLeft;
	return Math.max(
		0,
		mouseX / (BASE_TIMELINE_PIXELS_PER_SECOND * zoomLevel),
	);
}