-
Notifications
You must be signed in to change notification settings - Fork 290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Return to feed after opening notes may return user to incorrect place in feed #751
Comments
I have also experienced this. |
@alltheseas @jb55 does this issue happen to you? I have tried closely following the steps and the video but I have not been able to replicate this issue on my end. |
After talking to the team it seems like the problem is not with going back from an event, but switching between the notifications tab and the home feed tab |
This commit implements a way to save the scroll position within a timeline. It does that by assigning each note in the timeline an ID based on the NoteID, and adding a `scrollPosition` modifier along with SceneStorage to keep track of and persist the scroll position along the timeline view throughout a single app session. Notes: - Scroll position is not persisted across app restarts. When the user completely quits the app, scroll position is lost. - This works on home feed and universe view. However, due to how Universe view is dynamically loaded, performance may not be as good as on the home feed - This only works on iOS 17 and higher, since the necessary scroll position reading mechanism is only available in those versions. On older versions things should work as before this change. Testing ------- PASS Damus: This commit iOS: 17.6.1 Device: iPhone 13 mini Steps: 1. Scroll down home feed to a note with a memorable image 2. Switch to the notifications tab 3. Switch back to the home tab. Ensure scroll position is at the memorable image (or close). PASS 4. Navigate into another profile from the home feed 5. Go back to the home feed by clicking the "back" button on the top left. Ensure scroll position is preserved. PASS 6. Navigate into another profile from the home feed again. 7. Go back to the home feed by clicking the home button at the bottom tab bar. Ensure scroll position is preserved. PASS 8. Click on the home button at the bottom tab bar while at the home feed. You should be taken to the top. PASS Backwards compatibility testing ------------------------------- PASS Damus: This commit iOS: 16.4 Device: iPhone SE simulator Steps: 1. Navigate through the home feed, navigate between tabs 2. Ensure there are no visible regressions on navigation. PASS Changelog-Fixed: Fixed situations where scroll position would be lost (iOS 17 only) Closes: damus-io#751 Signed-off-by: Daniel D’Aquino <[email protected]>
This commit implements a way to save the scroll position within a timeline. It does that by assigning each note in the timeline an ID based on the NoteID, and adding a `scrollPosition` modifier along with SceneStorage to keep track of and persist the scroll position along the timeline view throughout a single app session. Notes: - Scroll position is not persisted across app restarts. When the user completely quits the app, scroll position is lost. - This works on home feed and universe view. However, due to how Universe view is dynamically loaded, performance may not be as good as on the home feed - This only works on iOS 17 and higher, since the necessary scroll position reading mechanism is only available in those versions. On older versions things should work as before this change. Testing ------- PASS Damus: This commit iOS: 17.6.1 Device: iPhone 13 mini Steps: 1. Scroll down home feed to a note with a memorable image 2. Switch to the notifications tab 3. Switch back to the home tab. Ensure scroll position is at the memorable image (or close). PASS 4. Navigate into another profile from the home feed 5. Go back to the home feed by clicking the "back" button on the top left. Ensure scroll position is preserved. PASS 6. Navigate into another profile from the home feed again. 7. Go back to the home feed by clicking the home button at the bottom tab bar. Ensure scroll position is preserved. PASS 8. Click on the home button at the bottom tab bar while at the home feed. You should be taken to the top. PASS iOS 16 regression testing ------------------------- PASS Damus: This commit iOS: 16.4 Device: iPhone SE simulator Steps: 1. Navigate through the home feed, navigate between tabs 2. Ensure there are no visible regressions on navigation. PASS Changelog-Fixed: Fixed situations where scroll position would be lost (iOS 17 only) Closes: damus-io#751 Signed-off-by: Daniel D’Aquino <[email protected]>
Sent a PR to fix this: #2459 As far as I have tested, this fixes the issue where scroll position is lost when crossing tab view boundaries (e.g. Viewing a thread from the notifications tab and going back to the home feed), which was the part of the issue that I could replicate. I heard of reports which claimed that this issue was also present in other occasions, such as going back from a deeply nested thread (accessed from the home feed itself). I was not able to reproduce that one, but the changes should improve that type of behavior as it is now programmed to persist scroll position throughout the app session, even if the view is loaded or unloaded. We should probably pay attention to user's feedback when we put this on the Purple TestFlight, to be sure (cc @jb55 @alltheseas) @jb55 please let me know if you have any questions, suggestions, or concerns. Thank you! |
Descoped from 1.10 due to performance regressions that will need to be worked on. |
This looks to be related to new notes being published and bumping down the feed. That's my guess as the longer the note is open the more scrolling you will have to do to go back to where the original note was in the feed.
Ideal state: Return to the same note in the feed when clicking on "<Home", even if new notes have been posted.
Fixing this would be a quality of life improvement. This is not really annoying when just opening a note and quickly closing it as scrolling is minimal. This is mostly an issue when opening notes to participate in the thread. By the time the user returns to the home screen the feed is widely out of sync.
Feed.Issue.mov
The text was updated successfully, but these errors were encountered: