Repository navigation
[Payment due @mkhutornyi] Add Vendors slot to Workspace > More features - #96890
Conversation
Wires a new Vendors toggle that reflects hasVendorFeature and navigates to the existing Vendors workspace page. Server-side enable/disable is not yet backed by an areVendorsEnabled NVP, so the toggle itself is a no-op today and will be hooked up in a follow-up PR alongside the EnablePolicyVendors backend work.
|
@ChavdaSachin 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] |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 648760dbc3
ℹ️ 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".
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.
|
|
@MelvinBot fix typescript checks |
Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
|
Fixed the failing Added the Note on translationsI added straightforward translations (e.g. The only other red check is |
|
@MelvinBot handle the polyglot changes needed and consider the codex review - respond in thread with your analysis and make any changes if needed |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Core design doc issue
…ns on More features Replaces the manual vendor translations with the canonical generateTranslations (Polyglot Parrot) output for the 8 non-English locales and es, and prefetches policy.connections on WorkspaceMoreFeaturesPage so the Vendors toggle reflects the correct state on non-active workspaces (Codex review). Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 205d5d90c4
ℹ️ 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".
|
@MelvinBot address the codex comment above |
Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? 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". |
|
@MelvinBot address the comments above |
…, align ja copy Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
es/fr/pt-BR/pl/zh-hans: minor copy tweaks per Parrot re-run. ja: reverts to Parrot katakana title.
|
@mkhutornyi ready for you!! Here's screenies from my tests (1 workspace w/ Intacct connected, 1 with nothing connected):
|
|
Better - ready now @mkhutornyi !
|
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppios.moviOS: mWeb SafariMacOS: Chrome / Safariweb.mov |
|
🎯 @mkhutornyi, thanks for reviewing and testing this PR! 🎉 A payment issue will be created for your review once this PR is deployed to production. If payment is not needed (e.g., regression PR review fix etc), react with 👎 to this comment to prevent the payment issue from being created. |
Section placement now contradicts the PR descriptionThe row moved from the Integrate section to the Organize section.
But the PR description still says "placed in the Integrate section alongside Accounting, Receipt partners, and HR."
Please update QA step to be in Organize section, not Integrate. |
|
Codex Review: Didn't find any major issues. Bravo. 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". |
ReviewVerdict: Code looks correct and is well-commented — no blocking bugs. The main issue is that the PR description / QA steps are stale and will send QA to the wrong place. One design confirmation worth getting before merge. 🟠 PR description doesn't match the code (please fix the body before QA)
🟡 Confirm the intentional inert-row behaviorThe row renders for any workspace with the 🟢 Looks good
Nits
Reviewed at |
|
description updated! all you @deetergp ! |
|
🚧 deetergp 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! 🧪🧪
|
|
✋ 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/deetergp in version: 9.4.46-0 🚀
|
Help site review — no changes requiredI reviewed the changes in this PR against the help site files under Why:
Since no doc changes are needed, I did not create a draft help site PR. I'd recommend revisiting help site documentation with the follow-up PR that unlocks the toggle and ships the real enable/disable flow — that's when the feature becomes actionable for customers and the vendor-matching article (or a new More features article) may need to cover enabling Vendors from Workspace settings > More features. @Beamanator, if you'd like documentation added now anyway, let me know and I'll draft a help site PR. |
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.4.46-10 🚀
Bundle Size Analysis (Sentry): |
|
🤖 Payment issue created: #97531 |




Explanation of Change
Adds a Vendors row to the Workspace > More features page, at the end of the Organize section (after Categories, Tags, Taxes). The row is gated behind the
vendorMatchingbeta and navigates to the existing Vendors workspace page on press.Ships a new Briefcase icon + illustration for the Vendors feature and swaps the workspace nav row + Vendors page header from the previous Suitcase / Luggage assets to the new Briefcase ones. Files added:
assets/images/briefcase.svg(line icon, registered inexpensify-icons.chunk.tsasBriefcase).assets/images/simple-illustrations/simple-illustration__briefcase.svg(illustration, registered inillustrations.chunk.tsasBriefcase).The workspace has no server-side
areVendorsEnabledNVP today —hasVendorFeature(beta + QBO CC/DC export, or Sage Intacct CC Charge, or Xero connected) is the canonical gate everywhere. This PR reflects that state in the toggle: the switch is locked (with the lock icon shown when active) because there is noEnablePolicyVendorsbackend command yet. A follow-up PR will unlock the switch and wire the real enable/disable flow once that backend command lands.usePolicyConnectionsPrefetchis called (gated on the beta) sopolicy.connectionsis hydrated when the More features page is opened directly on a non-active workspace — otherwisehasVendorFeaturewould incorrectly return false. This mirrors the same prefetch used by the Vendors nav row inWorkspaceInitialPage.Adds
workspace.moreFeatures.vendors.{title,subtitle}copy to all 10 language files (English + 9 target locales via Polyglot Parrot).Fixed Issues
$ https://github.com/Expensify/Expensify/issues/638608
PROPOSAL:
Tests
vendorMatchingbeta enabled, QBO connected, and a CC/DC non-reimbursable export destination, open Workspace settings > More features.hasVendorFeaturereturns true and the switch is locked in this PR).Offline tests
hasVendorFeaturevalue.QA Steps
Ping me & @heyjennahay to test!
vendorMatchingbeta enabled + QBO + CC/DC export configured, open Workspace settings > More features.PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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