Commit Graph

3 Commits

Author SHA1 Message Date
shakespeare.diy 6d7375bb19 Scope overscroll-behavior to PullToRefresh component only
Remove global overscroll-behavior-y: contain from CSS. Instead, set it
on document.documentElement via JS when the PullToRefresh component
mounts and restore the previous value on unmount. This way other pages
keep the browser's native pull-to-refresh behavior.

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-02-18 04:00:44 -06:00
shakespeare.diy e87ae03805 Fix pull-to-refresh hijacked by browser native gesture
- Add overscroll-behavior-y: contain on html/body to disable browser's
  native pull-to-refresh
- Switch from React synthetic touch events to native addEventListener
  with { passive: false } so e.preventDefault() actually blocks the
  browser gesture during pull-down
- Use a mirrored ref (currentPull) for synchronous reads inside native
  event handlers

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-02-18 03:57:53 -06:00
shakespeare.diy 69a05f690a Add pull-to-refresh on mobile feed
- Create PullToRefresh component with touch drag detection
- Rubber-band resistance effect for natural feel
- Spinner indicator appears below tabs when pulling down
- Triggers feed data refetch on release past threshold
- Only active on mobile (touch events + indicator hidden on sidebar breakpoint)

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-02-18 03:55:23 -06:00