Repository navigation
Enable pinch zoom and panning in fullscreen mobile PDFs - #19
Conversation
There was a problem hiding this comment.
Reviewed all three changed files at b0f7918 against current main e6b0484. Needs attention; not merging.
-
[P1] Required test check fails on the new fullscreen-exit regression. Hosted CI run 41039988755 fails
PdfViewer.test.tsx > commits the preview when leaving fullscreen during a pinchat line 121: expected the 200% preview to commit, but the rendered DOM remains at 100% with a 200px page. Preserve the assertion, fix the fullscreen-exit failure and obtain passing exact-head CI. The hosted log establishes the failed assertion; I have not independently established repeatability or the precise root cause. -
[P2] End/cancel a pinch when its touch pair changes (
PdfViewer.tsx, start/end listeners). An active pinch survives a third touch because start simply returns. If an original finger then lifts, end sees two remaining touches and also returns; subsequent moves use a different pair against the old distance/anchor, causing a zoom jump. The shared touchcancel handler also returns whenever two touches remain rather than necessarily cancelling the active gesture. Track the active pair or end the gesture when extra fingers/pair changes occur, and make cancellation explicit. Add coverage for 2-to-3-to-2 touches with an original finger released and touchcancel with remaining touches.
The normal midpoint/page anchoring, clamp, deferred sharp render, one-finger scrolling and non-fullscreen behavior have dedicated tests; the implementation adds no network, permission, dependency, workflow or host-automation changes. No contributor code, tests or builds were executed on DGX. Real mobile-browser touch behavior remains a separate eventual deployment/device check; jsdom tests do not establish it.
|
Addressed both review findings in the new head:
Verification: pnpm check, real-Docker pnpm test:compiler, and native-touch mobile Chromium pinch/focal-point/panning checks passed locally. Awaiting exact-head hosted CI and owner-manager re-review. |
DebelToni
left a comment
There was a problem hiding this comment.
Re-reviewed the complete three-file diff at 0cb8baa against current main e6b0484. Previous findings addressed; no remaining blocking findings.
The regression fixture now waits for React to commit render readiness/listener installation, and additionally proves the preview reached 400px before fullscreen exit. The original 200%/sharp-render exit assertions remain. Exact-head hosted CI now passes. Active touch identifiers are checked regardless of ordering, a third finger or replacement pair ends the gesture, and touchcancel unconditionally finishes it. New tests cover those cases and ignored post-cancellation moves.
Reviewed transient canvas resizing, page-relative midpoint anchoring as preceding pages grow, clamping, persisted view state, deferred sharp render, fullscreen-only listener scope/cleanup and native one-finger scroll delegation. No backend, network/credential, dependency, workflow, policy or host-automation changes. Hosted test/analyze and CodeQL passed for this exact head. No contributor code, tests or builds executed on DGX. Physical iOS/Safari gesture behavior has not been independently exercised by this review; the hosted tests are DOM fixtures, not a device rendering claim.
Summary
Verification
pnpm checkpassed (134 web tests, 157 server tests, build/lint/typecheck and script tests).pnpm test:compilerpassed with real Docker isolation.Not deployed by this PR submission; existing owner review and CI gates remain in place.