import type { SnapPoint, SnapResult } from "./types"; export function resolveTimelineSnap({ targetTime, snapPoints, maxSnapDistance, }: { targetTime: number; snapPoints: SnapPoint[]; maxSnapDistance: number; }): SnapResult { let closestSnapPoint: SnapPoint | null = null; let closestDistance = Infinity; for (const snapPoint of snapPoints) { const distance = Math.abs(targetTime - snapPoint.time); if (distance <= maxSnapDistance && distance < closestDistance) { closestDistance = distance; closestSnapPoint = snapPoint; } } return { snappedTime: closestSnapPoint ? closestSnapPoint.time : targetTime, snapPoint: closestSnapPoint, snapDistance: closestDistance, }; }