Show inline Explain link on integration sync failure messages#96424
Show inline Explain link on integration sync failure messages#96424MelvinBot wants to merge 1 commit into
Conversation
Co-authored-by: Marc Glasser <marcaaron@users.noreply.github.com>
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.
|
|
All of the code checks are now green — no code fix was needed, so I didn't push anything. When you filed this request, the JS checks (ESLint, typecheck, tests, perf) were still queued/pending rather than failed. They've since all completed and passed:
The only remaining ❌ is |
|
@mkhutornyi 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] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
Explanation of Change
Export/sync failure system messages (e.g.
failed to export this report to NetSuite ("NS0196 Sync Error: …")) exposed the right-click "Explain" option but not the inline "Explain" link on hover. The right-click entry is gated onhasReasoning(reportAction), while the inline link only renders when the action's render component wraps its message inReportActionItemMessageWithExplain. TheINTEGRATION_SYNC_FAILEDfailure path routed throughIntegrationSyncFailedMessage.tsx, which rendered plain muted text viaReportActionItemBasicMessage+RenderHTMLand was never wired up for the inline affordance (only the success pathExportIntegrationwas, in commit281da4f7).This change makes
IntegrationSyncFailedMessagemirrorExportIntegration: whenhasReasoning(action)is true it wraps the message inReportActionItemMessageWithExplain(which appends the inline "Explain" link and wires up theexplainhandler), and otherwise falls back to the existingReportActionItemBasicMessage/RenderHTMLrendering.ActionContentRouternow passesoriginalReportthrough so the explain handler has the report context it needs. Net effect: NetSuite/QBO sync-failure messages that carry a reasoning payload now show the inline "Explain" link on hover as a first-class action, matching the export success path.Fixed Issues
$ #96422
PROPOSAL:
Tests
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
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