Skip to content

fix(mobile): skip thread tail jumps that retrigger iOS bounce - #6749

Open
ileonhardt wants to merge 1 commit into
block:mainfrom
ileonhardt:fix/mobile-ios-thread-tail-bounce
Open

fix(mobile): skip thread tail jumps that retrigger iOS bounce#6749
ileonhardt wants to merge 1 commit into
block:mainfrom
ileonhardt:fix/mobile-ios-thread-tail-bounce

Conversation

@ileonhardt

Copy link
Copy Markdown

Summary

  • Stop thread follow-tail from calling jumpTo(maxScrollExtent) / animateTo when extentAfter is already ~0.
  • Treat that exhausted extent as “at the tail” in the correction loop, even if item positions still lag.
  • Skip metrics realign when the thread is already at its end.

Short threads on iPhone rubber-band under the Thread header when follow-tail keeps poking iOS bouncing physics at an offset that is already the end. Screen recording from an iPhone 16 Pro showed ~60px, ~3Hz oscillation with no finger on the glass.

Why this is not already on a store build

Validation

Exact pushed head: e9fa5ad47494a586bba74c1407351c731dfa452c

  • just mobile-check (dart format + flutter analyze: no issues)
  • just mobile-test — 1808/1808 passed
  • just file-size-check
  • git diff --check

Not verified on a physical iPhone 16 Pro (no device here). The new widget test covers a 1-reply thread after idle layout + inset jitter.

On short threads, follow-tail kept calling jumpTo(maxScrollExtent) while
item positions still reported the tail as not visible. On iOS bouncing
physics that restarts rubber-banding even when extentAfter is already 0,
which is the header jank on iPhone 16 Pro.

Stop the correction loop once the scroll position is at the end, and do
not jump or animate when already there.

Related: block#5911 (stale, unmerged), block#6399 (Latest hide only).

Co-authored-by: Nacho <ignacio@kyanhealth.com>
Signed-off-by: Nacho <ignacio@kyanhealth.com>
@ileonhardt
ileonhardt requested a review from a team as a code owner August 25, 2026 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant