Summary
When opening a report at a linked or unread report action (introduced in #90072), the action currently anchors at the very bottom of the chat. Users see what looks like a single new message, miss earlier unread messages above it, and often don't realize there are more until they send a reply (which then triggers a scroll). The experience reads as broken.
A previous attempt to vertically center the action (#90375, addressing #88502) was closed because computing the action's height accurately added significant initial render delay (see margelo thread).
Proposal
Keep deep linking to the oldest unread (or linked) action as today, but after landing, scroll the chat forward by a fixed offset (~100 px) so a sliver of later content is visible underneath the anchored message. This hints "there is more here" without requiring dynamic per-row height measurement, which is what blocked #90375.
Ideally the offset is applied as part of the initial scroll position rather than a deferred second scroll, to avoid a visible flicker.
Acceptance criteria
- Opening a report with unread messages still scrolls to the oldest unread action / unread marker.
- The anchored action no longer renders flush against the bottom of the chat — ~100 px of additional content is visible below it (or, when there are no later messages, the bottom is reached as today).
- No visible flicker on initial render.
- Verified on web, desktop, iOS, Android, mWeb.
Context
Slack thread: https://expensify.slack.com/archives/C049HHMV9SM/p1779764974326039
Related:
Summary
When opening a report at a linked or unread report action (introduced in #90072), the action currently anchors at the very bottom of the chat. Users see what looks like a single new message, miss earlier unread messages above it, and often don't realize there are more until they send a reply (which then triggers a scroll). The experience reads as broken.
A previous attempt to vertically center the action (#90375, addressing #88502) was closed because computing the action's height accurately added significant initial render delay (see margelo thread).
Proposal
Keep deep linking to the oldest unread (or linked) action as today, but after landing, scroll the chat forward by a fixed offset (~100 px) so a sliver of later content is visible underneath the anchored message. This hints "there is more here" without requiring dynamic per-row height measurement, which is what blocked #90375.
Ideally the offset is applied as part of the initial scroll position rather than a deferred second scroll, to avoid a visible flicker.
Acceptance criteria
Context
Slack thread: https://expensify.slack.com/archives/C049HHMV9SM/p1779764974326039
Related: