Files
kandev/apps/web/lib/mobile/pull-to-refresh.ts
T
Carlos Florêncio a84e481d20 feat: refresh task surfaces on foreground and pull (#1986)
* feat: refresh task surfaces on foreground and pull

* fix: address task surface refresh review feedback

* fix: prevent task list render loop
2026-07-27 20:42:05 +01:00

23 lines
693 B
TypeScript

export const PULL_TO_REFRESH_THRESHOLD = 72;
export function isAtVerticalScrollTop(
target: EventTarget | null,
root: HTMLElement | null,
): boolean {
let current = target instanceof HTMLElement ? target : null;
while (current) {
if (current.scrollHeight > current.clientHeight && current.scrollTop > 0) return false;
if (current === root) break;
current = current.parentElement;
}
return true;
}
export function pullDistance(verticalDistance: number): number {
return Math.min(Math.max(verticalDistance, 0) * 0.55, PULL_TO_REFRESH_THRESHOLD);
}
export function shouldRefreshAfterPull(distance: number): boolean {
return distance >= PULL_TO_REFRESH_THRESHOLD;
}