[CP Staging] Revert: freeze WorkspacesListPage when blurred#91547
Conversation
|
@abzokhattab 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] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4086c4bb61
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| } | ||
| const handle = requestAnimationFrame(() => setFreezed(true)); | ||
| return () => cancelAnimationFrame(handle); | ||
| setFreezed(isScreenBlurred); |
There was a problem hiding this comment.
Defer blur freeze to next frame
Freezing immediately on blur can interrupt pending pointer lifecycle events (onPressOut), which leaves Pressable rows in a stuck pressed/hovered visual state when the screen is shown again. This regression now affects every web flow still wrapped by FreezeWrapper (for example SearchFullscreenNavigator and ReportsSplitNavigator), because the previous one-frame defer was removed and setFreezed(true) runs synchronously as soon as blur is detected.
Useful? React with 👍 / 👎.
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
…sListPage (cherry picked from commit e2f2b04) (cherry-picked to staging by mountiny)
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Cherry-picked to staging by https://github.com/mountiny in version: 9.3.81-0 🚀
|
|
No help site changes are required for this PR. The changes revert an internal |
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.3.81-2 🚀
|
Explanation of Change
This reverts PR #90970 (
perf: freeze WorkspacesListPage when blurred to avoid rerender storm on workspace navigation), which introduced aFreezeWrapperaroundWorkspacesListPagewith arequestAnimationFrame-deferred freeze.The deferred freeze races with the popover modal close chain — when "Go to workspace" is clicked from the 3-dot menu, the freeze can activate before the popover's full-viewport overlay is removed from the DOM, leaving the app non-interactive.
Fixed Issues
$ #91544
Tests
Test the linked blocker
Offline tests
QA Steps
Same as tests
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))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: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari