Stop auto-selecting first account and vendor when changing QBD export type#90720
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@hungvu193 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] |
|
@brunovjk added you as C+ since you've been working on QBD recently and know how to test. @joekaufmanexpensify @trjExpensify not sure why puller bear assigned three product people, going to unassign you and just leave Flavia |
|
Sounds good. Unsubscribing! |
|
I'm a little busy with another PR today, but I'll review by the end of the day. |
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. ℹ️ 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". |
|
I'm back here, but I'd forgotten that we weren't actually able to test the QBD connection due to "RightNetworks Remote Environment", right @blimpich? Can the QA team test it? Thank you. |
|
@brunovjk yeah we're still blocked, will update you when it's unblocked 👍 |
|
Looks like we're close to being able to test here again? @brunovjk can you check? https://expensify.slack.com/archives/C9YU7BX5M/p1779307496491309?thread_ts=1778607693.575199&cid=C9YU7BX5M |
|
I can't connect to QBD
|
|
Haven't heard a definitive update yet from @francoisl but should be soon! |
|
@brunovjk this should be good to test now |
|
Update: I'm still connecting QBD to my account, I'll review it ASAP. |
|
I asked for help here. |
|
Thanks @blimpich. Will pull the PR and test now. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppRan into build issues. I think it is fine to skip this as the fix is not platform dependent. Android: mWeb Chrome90720-mweb-chrome-001.mp4iOS: HybridApp90720-ios-hybrid-001.mp4iOS: mWeb Safari90720-mweb-safari-001.mp4MacOS: Chrome / Safari90720-web-chrome-001.mp4 |
|
@NicolasBonet 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] |
|
@codex review |
Reviewer Checklist
|
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @NicolasBonet has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/NicolasBonet in version: 9.4.1-0 🚀
Bundle Size Analysis (Sentry): |
Help site review — changes requiredYes, a help site update is warranted. The QBD configuration article documents the company card export account/vendor selection in Configure-QuickBooks-Desktop.md. The article had already dropped the old "first item in the imported list (default)" wording, but it still did not reflect the two behaviors this PR introduces:
I added both clarifications. Draft help site PR: #92999 @blimpich, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.4.1-6 🚀
|

Explanation of Change
When an admin changes the company-card export type in the QuickBooks Desktop accounting settings (Credit card / Debit card / Vendor bill), the app silently saved the first account in the imported list as the non-reimbursable account, and the first vendor as the default vendor — without the admin ever opening either picker. The admin saw fields appear filled in on the next screen even though they never chose those values. The same problem caused the summary row on the company-card expense account page to display the first imported account's name when nothing was actually saved.
This is a follow-up to #90276, which removed the same "auto-select first item" pattern for NetSuite, Xero, and four other QBD picker pages, but missed these two spots. The gap was surfaced by an automated review comment on the docs PR #90569 (comment).
This PR:
Fixed Issues
$ #90721
PROPOSAL:
Tests
Set up a workspace connected to QuickBooks Desktop with at least one imported account of each export type (Credit card, Debit card, Vendor bill / Payable) and at least two vendors.
Scenario 1 — Changing the export type does not silently pick an account or vendor
Scenario 2 — The account picker does not pre-highlight the first imported account
Scenario 3 — Switching export type clears a previously chosen account/vendor
Offline tests
Same as Tests, with the device offline before performing each scenario. Verify the UI reflects the offline pending state on the changed fields and that the values still settle to the expected cleared state once back online.
QA Steps
Run the three scenarios in the Tests section above on the staging environment using a workspace connected to QuickBooks Desktop.
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 taggedExpensify/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
– written by Claude on Ben's behalf