This repository has no description

chat: trackpad scrolling reaches the latest message on web

Chat is an inverted FlatList, which react-native-web flips with scaleY(-1) and scrolls by hand: it cancels each wheel event and writes scrollTop itself. The browser snaps every scrollTop write to a device pixel, so a trackpad's small, fractional deltas round away, and more in one direction than the other: in Chromium, forty half-pixel steps toward the latest message move the list 0px while the same steps into history move it 20px. Its handler also lets the element under the pointer soak up the delta first when that element's scrollHeight exceeds its clientHeight, which a truncated chat name can do by a few pixels. The chat list now takes its wheel events first, in the capture phase on its scroll node, carries what the browser rounded away into the next step, and scrolls only the list. flows/09-chat-wheel-scroll fills chat, scrolls into history, and checks that half-pixel wheel steps travel the full distance both ways. It fails without the fix (0px of the expected 20px). Native platforms have no wheel events and are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>


Author Eli Mallon Co-author Claude Opus 5.5 (1M context) Date Commit Parent 38cf3156
+142
2 changed files
+142
2 changed files