Repository navigation
Keep the staged other-workspace card feed checked after linking - #103994
Conversation
Stage other-workspace feeds by the feed#fundID key they get in the available feeds list, computed once in useOtherFeedsForFeedSelector as selectionValue (undefined when the fundID is missing). The checkmark now follows the feed when linking moves it into the available list before the RHP closes. Co-authored-by: truph01 <truph01@users.noreply.github.com>
|
I created this PR from an upstream branch since I don't have push access to your fork. To take ownership of this branch and be able to push updates, run: Then you can close this PR and open a new one from your fork. |
|
@MelvinBot Mark this PR as ready |
|
🤖 Web test steps verification results: This PR has no test steps yet, so I used the reproduction steps from the linked issue. The Company Cards page loads, but I could not test the fix. Adding a card feed asks for a 6-digit code sent by email, and this test session can't read that inbox. So neither workspace got a feed, and I could not open the feed selector.
To finish this test, use an account that already has a validated login and company card feeds in two workspaces. |
|
🤖 This PR is now marked as ready for review. The |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@MelvinBot The checkmark stays now, but the feed still moves during the RHP close animation. The Please freeze the lists while linking in |
Co-authored-by: truph01 <truph01@users.noreply.github.com>
|
I pushed a fix. The page now freezes both feed lists while the link request runs, so the feed stays under "From other workspaces", still checked, until the RHP closes.
The page test now checks two things. The feed stays in place when the response lands before close; this test fails without the fix. When linking fails, the page shows the live lists again. Checks runJest for |
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
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". |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-10-15.at.13.43.05.movAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-10-15.at.13.35.22.mov |
|
@truph01 thanks, tests section and QA steps in the PR body are still TODO though, can you fill them in? |
|
@MelvinBot Update QA test section based on test steps in #103551 |
|
I updated the QA Steps section using the reproduction steps from Company Card - Checkbox disappears briefly when switching company card feed:
The Tests section is unchanged. It still has its TODO. |
|
@MelvinBot Update the step 1 "Go to staging.new.expensify.com" to "Go to ND". |
|
I updated the PR description:
If you want QA to check that too, I can add step 7 to QA Steps. |
Co-authored-by: truph01 <truph01@users.noreply.github.com>
|
🚧 lakchote has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/lakchote in version: 9.5.15-1 🚀
|
|
No help site update is needed. This PR fixes a bug: the checkmark on an other-workspace card feed disappeared for a moment after you clicked Save. Now the checkmark stays, which is what users already expect, so no article sentence becomes wrong. |
|
🚀 Deployed to production by https://github.com/grgia in version: 9.5.15-3 🚀
Bundle Size Analysis (Sentry): |





Explanation of Change
In the company card feed selector, a feed from another workspace was staged in
draftFeedby its row value,${fundID}_${feed}. On Save, the link response reaches Onyx before the RHP closes. The feed then leaves "From other workspaces" and shows up in the available feeds list under its${feed}#${fundID}key. The staledraftFeedmatched no row, so the checkmark disappeared until the RHP closed.This PR stages other-workspace feeds by the
${feed}#${fundID}key from the start, so the checkmark follows the feed into the available list:useOtherFeedsForFeedSelectorcomputes that key once and returns it as a newselectionValuefield onCardFeedListItem. It reuses the key the hook already built for its duplicate-row check. When the fundID is missing or invalid,selectionValueisundefinedinstead of afeed#NaNkey.WorkspaceCompanyCardFeedSelectorPageusesselectionValue ?? valuewhen staging a feed, when finding the staged other-workspace feed, and for the row checkmark.value, so those flows are unchanged.The page test fixture now uses the real
${fundID}_${feed}row value (the oldfeed#123value hid this bug). A new test checks the staged feed stays checked after the link response moves it into the available list. It fails without this fix.AI tests run locally:
npm run typecheck,npm run lint-changed,npm run spell-changed,npm run fmt(no diff),react-compiler-compliance-check checkon both changed source files, and Jest forWorkspaceCompanyCardFeedSelectorPageTest,useOtherFeedsForFeedSelector.testandWorkspaceCompanyCardPageEmptyStateTest(23/23 pass). I did not run a browser check, because it needs an account with company card feeds in two workspaces.Fixed Issues
$ #103551
PROPOSAL: #103551 (comment)
Tests
Precondition: Log in with an account that has two workspaces, each with its own company card feed.
Offline tests
QA Steps
Precondition: Log in with an account that has two workspaces, each with its own company card feed.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)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.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