iOS - Scroll up to the beginning loads the end of the conversation#58983
Conversation
|
@dukenv0307 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@aldo-expensify Can you please build the ad-hoc? cc @IuliiaHerets |
running |
|
🚧 @aldo-expensify has triggered a test app build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪
|
|
any updates here? |
|
@aldo-expensify where you able to test the build? |
No, given that @dukenv0307 asked for an ad-hoc build, I thought someone else was going to test this. I'll will try to test today. |
|
thanks a lot @aldo-expensify :) |
|
This is taking time for me because my dev environment somewhat broken |
|
@dukenv0307 what is stopping you from testing this yourself? |
|
I don't see that error on my side. Can you please take a look @rinej? Screen.Recording.2025-04-02.at.10.54.21.mov |
|
@aldo-expensify I couldn't reproduce it neither on main nor on the PR branch. Does this issue occurs regularly? |
It was happening 100% of the time with that specific chat, I didn't try other chats. Did you try other chats? |
@dukenv0307 did you tap on the back button on the top left? I don't see that in your recording. |
|
@rinej can you make sure your branch is up to date with |
|
@aldo-expensify ah, you're right, I also can reproduce this bug but it's fixed after merging main Screen.Recording.2025-04-03.at.14.20.17.mov |
|
Thanks for checking @dukenv0307 , so we wait for @rinej to merge main and then we proceed with normal testing/review? |
|
Yes, @rinej can you please merge main, so I can do the checklists. Thanks |
…-of-the-conversation
|
Sure, I merged it |
Reviewer Checklist
Screenshots/VideosAndroid: NativeScreen.Recording.2025-02-20.at.22.19.38.movAndroid: mWeb ChromeScreen.Recording.2025-02-20.at.22.15.02.moviOS: NativeScreen.Recording.2025-04-06.at.14.44.26.moviOS: mWeb SafariScreen.Recording.2025-02-20.at.22.16.19.movMacOS: Chrome / SafariScreen.Recording.2025-02-20.at.22.14.09.movMacOS: DesktopScreen.Recording.2025-02-20.at.22.24.13.mov |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/aldo-expensify in version: 9.1.24-2 🚀
|
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.1.24-10 🚀
|
1 similar comment
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.1.24-10 🚀
|

Explanation of Change
Fixed Issues
$ #54870
PROPOSAL: #54870 (comment)
Background
The maintainVisibleContentPosition option is designed to keep the scroll position stable when a user receives a new message. It is used when the scroll is at a fixed offset from the bottom.
Problem
On iOS, when scrolling up, when the property is enabled it causes the view to unexpectedly snap back to the bottom.
Solution
We can apply the maintainVisibleContentPosition prop conditionally - only setting it when the user is not actively scrolling.
This approach allows us to have the benefits of maintainVisibleContentPosition while fixing the snapping issue when scrolling up.
Before:
BrokenScrolling.mp4
After:
FixedScrolling.mp4
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop