From 3799f5da19a89ff50589c72e8af3a27bb1ffb616 Mon Sep 17 00:00:00 2001 From: "Jayesh Mangwani (via MelvinBot)" Date: Thu, 26 Mar 2026 16:00:15 +0000 Subject: [PATCH 01/24] Update CTA and workspace chat copy for track-intent users Uses NVP_INTRO_SELECTED at the user level to identify track-intent users and conditionally update copy across three areas: - Workspace chat welcome text: "This is where you will track expenses" - CTA buttons (Submit/Approve): "Mark as done" - System messages (submitted/approved): "marked as done" Co-authored-by: Jayesh Mangwani --- src/components/MoneyReportHeader.tsx | 18 +++++++++++------- .../ApproveActionButton.tsx | 4 +++- .../SubmitActionButton.tsx | 4 +++- src/components/ReportWelcomeText.tsx | 3 +++ src/languages/en.ts | 3 +++ src/languages/es.ts | 3 +++ src/libs/SidebarUtils.ts | 7 ++++++- .../inbox/report/PureReportActionItem.tsx | 10 ++++++++-- src/selectors/Onboarding.ts | 10 +++++++++- 9 files changed, 49 insertions(+), 13 deletions(-) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index ab64bc864990..f37dfadf6102 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -1,7 +1,7 @@ import {useRoute} from '@react-navigation/native'; import {isUserValidatedSelector} from '@selectors/Account'; import {shouldFailAllRequestsSelector} from '@selectors/Network'; -import {hasSeenTourSelector} from '@selectors/Onboarding'; +import {hasSeenTourSelector, isTrackIntentUserSelector} from '@selectors/Onboarding'; import {getArchiveReason} from '@selectors/Report'; import {validTransactionDraftsSelector} from '@selectors/TransactionDraft'; import truncate from 'lodash/truncate'; @@ -253,6 +253,7 @@ function MoneyReportHeader({reportID: reportIDProp, shouldDisplayBackButton = fa const [bankAccountList] = useOnyx(ONYXKEYS.BANK_ACCOUNT_LIST); const [activePolicyID] = useOnyx(ONYXKEYS.NVP_ACTIVE_POLICY_ID); const [amountOwed] = useOnyx(ONYXKEYS.NVP_PRIVATE_AMOUNT_OWED); + const [isTrackIntentUser] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED, {selector: isTrackIntentUserSelector}); const activePolicy = usePolicy(activePolicyID); const [integrationsExportTemplates] = useOnyx(ONYXKEYS.NVP_INTEGRATION_SERVER_EXPORT_TEMPLATES); @@ -1385,11 +1386,14 @@ function MoneyReportHeader({reportID: reportIDProp, shouldDisplayBackButton = fa beginExportWithTemplate, ]); + const submitButtonText = isTrackIntentUser ? translate('common.markAsDone') : translate('common.submit'); + const approveButtonText = isTrackIntentUser ? translate('common.markAsDone') : translate('iou.approve'); + const primaryActionsImplementation = { [CONST.REPORT.PRIMARY_ACTIONS.SUBMIT]: ( handleSubmitReport()} isSubmittingAnimationRunning={isSubmittingAnimationRunning} onAnimationFinish={stopAnimation} @@ -1400,7 +1404,7 @@ function MoneyReportHeader({reportID: reportIDProp, shouldDisplayBackButton = fa