← back to Designer Wallcoverings
pending-approval/infinite-scroll-hardening-2026-06-25/README.md
32 lines
# Infinite-scroll hardening — STAGED (DTD verdict B: do NOT ship before the noon mailer)
## Status: STAGED, not deployed. Live infinite scroll already works.
### Finding (2026-06-25)
Infinite scroll **functionally works on LIVE** (Boost SD collection grids):
- Desktop: 24 → 312 on scroll. Mobile (iPhone, real touch-style scroll): 24 → 144.
- Live shows no numbered pager; per-page "Display: 24" control hidden; infinite container active.
- The PRIMARY mechanism `snippets/boost-infinite-override.liquid` is wired into live
theme.liquid and flips Boost to `paginationType: infinite_scroll` before init.
The "stuck at 24" only reproduces with a synthetic instant `scrollTo(bottom)` teleport,
which never crosses the IntersectionObserver sentinel — a **headless artifact**, not real
user behavior. Real finger/momentum scroll crosses the sentinel and loads.
### Why staged, not shipped (DTD committed verdict B, no dissent — 2026-06-25 ~11:25am)
With a noon mailer minutes away, priority = zero regression. The hardened patch adds a
near-bottom pump calling `sentinel.scrollIntoView({block:'center'})`, which can YANK the
viewport on a page that already auto-loads. Not worth the jank risk on live traffic with
no confirmed live defect. Deploy ONLY if a real on-device stall is reported.
### What's here
- `boost-sd-custom.PATCHED.js` — full hardened asset (current Boost selectors
`.boost-sd__pagination-infinite-scroll-container-button/-target`, re-arming
IntersectionObserver, near-bottom-only latch-guarded pump). Syntax-checked.
- `boost-sd-custom.LIVE-BACKUP.js` — the live asset as of 2026-06-25, for diff/rollback.
### To deploy IF a real live stall appears (role==main theme, Steve-gated)
PUT `assets/boost-sd-custom.js` = boost-sd-custom.PATCHED.js to the role==main theme
(resolve dynamically; SHOPIFY_THEME_TOKEN in secrets-manager/.env, API 2024-10).
Back up the live value first. Re-test on mobile with CONTINUOUS scroll (not teleport).