The thread pins itself to the bottom on open, refresh and contact switch, without animation. It stops sticking as soon as the user scrolls away deliberately, and a jump control brings them back.
Also called: have to scroll to the bottom · conversation opens at the top · jump to latest
- 1A callback ref attaches the moment the scroller node exists, whatever the mount order
- 2The real scrolling element is found by walking OUT from a rendered message to the first genuinely overflowing ancestor
- 3Position is set at several intervals after mount so late-loading media cannot leave it stranded
- 4Sticking is disabled once the user scrolls up themselves
Every time a conversation was opened, refreshed or switched, it landed at the top of the history — so the newest message, the only one anyone opens a conversation to see, sat a full scroll away every single time. On a customer with months of messages that scroll was long enough that reps started checking their phone instead. Threads now open on the latest message, with a jump button to return there.
- Scroll position resetting to the oldest message
- A jump-to-latest button that silently did nothing
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →