-
Notifications
You must be signed in to change notification settings - Fork 3.5k
fix: broken screen animation during navigation transition #76343
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
fix: broken screen animation during navigation transition #76343
Conversation
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
@aimane-chnaif I was able to test the usage of component on different pages, but I was not able to test for these two. Could you help me test these.
|
|
per diem: Screen.Recording.2025-12-02.at.10.17.57.pm.movreceipt partner: Screen.Recording.2025-12-02.at.10.19.07.pm.movYou should connect uber to see invite page |
|
@aimane-chnaif 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] |
|
@aimane-chnaif I indeed move to features screen. The feature is locked behind a subscription.
Meanwhile, I open the pr for review. |
You can upgrade. |
trjExpensify
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I'm a little confused. On the Create expense > Scan screen why would swiping not close the modal vs switch to the manual tab? 🤔
CC: @Expensify/design
|
I'm confused too—I'm having a hard time understanding this issue in general. Would someone mind giving me a dumbed-down explanation? 🙏 |
|
swipe gesture is enabled on web too. you can try using mouse long click. Screen.Recording.2025-12-04.at.3.58.05.pm.movIn this video, select currency button doesn't go to currency selection page correctly. |
|
Ah ok I see now. 👍 Thanks for explaining! |
|
I guess I have two questions:
|
Yeah I agree this seems like pretty pointless functionality.
TBH I've always had mixed feelings about this behavior as well. Swiping does change tabs for me, but if we're talking about removing that functionality, I think we need broader team input. |
Tested iOS. Swipe works Screen.Recording.2025-12-04.at.4.15.59.pm.movScreen.Recording.2025-12-04.at.4.16.42.pm.mov
👍 |
|
Alright, I killed the app completely and now it works on It kinda' works on Anyway, fine to leave it.. just seems a bit overkill. |
|
Yeah, my issue with it is it's kinda unpredictable since different screens have different interactive components on them (like the map you pointed out). I'm not against ditching the swipe behavior, because I agree, I don't see it as being super necessary. I just don't want to make a casual decision in a PR and have a bunch of people upset because we changed it without telling anyone 😂 |
|
@aimane-chnaif do you have any idea where we introduced this in the first place? It might be good to follow the history to see what discussion it came from. |
|
Not sure about web behavior but for mobile, I think the recent discussion happened in #65746 (comment). (please read through history from this comment) |
|
Oh nice, and I'm not even contradicting myself! 😂 Seems like the design team is aligned on just removing the swipe to change tabs altogether. |
|
Haha, nice! I mean, like in the git history, can we trace it back to where we implemented swipe to change tab, Aimane? |
I thought the swipe was a default behavior of these TabView controllers with React Native/React Navigation? Also all for removing it. We had to disable it for MultiScan anyways since we had multiple swipe areas. |
|
Updated |
|
@mdneyazahmad please merge main and fix lint errors |
|
I am still able to swipe on iOS (only first time) ios.mov |
|
@aimane-chnaif the bug is related to |
|
Good findings! @Valforte regarding this iOS specific bug, should we fix here or handle as separate bug? The root cause is in upstream and seems fixed in react-native-pager-view 7.0.2 Line 193 in d44e37f
|
aimane-chnaif
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving to request review from @Valforte and see above comment
|
Let's move forward with the fix as-is and leave the version bump for a new issue as that might have unintended consequences |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid.movAndroid: mWeb Chromemchrome.moviOS: HybridAppios-bug.moviOS: mWeb Safarimsafari.movMacOS: Chrome / Safariweb.mov |
@Valforte ok then we're good to merge. |
|
✋ 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/Valforte in version: 9.2.82-0 🚀
|
|
🚀 Deployed to staging by https://github.com/Valforte in version: 9.2.82-0 🚀
|
|
This PR is failing because of issue ##78051 The issue is reproducible in: IOS Bug7033178_1766088932190.20251219_041309.1.mp4 |
|
🚀 Deployed to staging by https://github.com/Valforte in version: 9.2.82-0 🚀
|
|
@lanitochka17 aimane-chnaif has identified this issue here. Valforte has decided to continue with the pr, and handle the update in a new issue. I have added a note on this PR description for the context about this iOS swipe issue. |
|
🚀 Deployed to staging by https://github.com/Valforte in version: 9.2.84-0 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.84-8 🚀
|

Explanation of Change
When we swipe between tab navigator, gesture animation triggers. If we try to navigate to different screen during this transition time. This creates a broken animation. We disable the swipe gesture to fix the issue.
Note: #76343 (comment) Swipe on tab navigator is not disabled only for the first time on iOS. This is related to a bug in the package
react-native-pager-view. It was decided to handle this case in a separate issue hereFixed Issues
$ #74735
PROPOSAL: #74735 (comment)
Tests
Screens
For the above screens, perform the following steps
Offline tests
NA
QA Steps
Same as test
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)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-native.mp4
Android: mWeb Chrome
android-chrome.mp4
iOS: Native
ios-native.mp4
iOS: mWeb Safari
ios-safari.mp4
MacOS: Chrome / Safari
macos-chrome.mp4