diff --git a/src/CONST/index.ts b/src/CONST/index.ts
index 0228af844325..dfdc47a7a1e2 100644
--- a/src/CONST/index.ts
+++ b/src/CONST/index.ts
@@ -6145,7 +6145,6 @@ const CONST = {
VIDEO_URL: `${CLOUDFRONT_URL}/videos/guided-setup-track-business-v2.mp4`,
LEARN_MORE_LINK: `${USE_EXPENSIFY_URL}/track-expenses`,
},
- TEST_DRIVE_COVER_ASPECT_RATIO: 1000 / 508,
},
/**
@@ -8005,7 +8004,6 @@ const CONST = {
START_CHAT: 'FABMenu-StartChat',
SEND_INVOICE: 'FABMenu-SendInvoice',
BOOK_TRAVEL: 'FABMenu-BookTravel',
- TEST_DRIVE: 'FABMenu-TestDrive',
NEW_WORKSPACE: 'FABMenu-NewWorkspace',
QUICK_ACTION: 'FABMenu-QuickAction',
},
@@ -8346,10 +8344,6 @@ const CONST = {
DISCOVER_SECTION: {
TEST_DRIVE: 'DiscoverSection-TestDrive',
},
- TEST_DRIVE_MODAL: {
- SKIP: 'TestDriveModal-Skip',
- START: 'TestDriveModal-Start',
- },
HOME_PAGE: {
WIDGET_ITEM: 'HomePage-WidgetItem',
GETTING_STARTED_ROW: 'HomePage-GettingStartedRow',
diff --git a/src/NAVIGATORS.ts b/src/NAVIGATORS.ts
index 7f24aedd382e..5b7369b7dddf 100644
--- a/src/NAVIGATORS.ts
+++ b/src/NAVIGATORS.ts
@@ -8,7 +8,6 @@ export default {
ONBOARDING_MODAL_NAVIGATOR: 'OnboardingModalNavigator',
FEATURE_TRAINING_MODAL_NAVIGATOR: 'FeatureTrainingModalNavigator',
MIGRATED_USER_MODAL_NAVIGATOR: 'MigratedUserModalNavigator',
- TEST_DRIVE_MODAL_NAVIGATOR: 'TestDriveModalNavigator',
TEST_DRIVE_DEMO_NAVIGATOR: 'TestDriveDemoNavigator',
REPORTS_SPLIT_NAVIGATOR: 'ReportsSplitNavigator',
SETTINGS_SPLIT_NAVIGATOR: 'SettingsSplitNavigator',
diff --git a/src/ROUTES.ts b/src/ROUTES.ts
index ea12ca2a6b09..ad0a95104a98 100644
--- a/src/ROUTES.ts
+++ b/src/ROUTES.ts
@@ -3380,10 +3380,6 @@ const ROUTES = {
// eslint-disable-next-line @typescript-eslint/no-deprecated -- Legacy route generation, consistent with other onboarding routes
getRoute: (backTo?: string) => getUrlWithBackToParam(`onboarding/personaltrackcase`, backTo),
},
- TEST_DRIVE_MODAL_ROOT: {
- route: 'onboarding/test-drive',
- getRoute: (bossEmail?: string) => `onboarding/test-drive${bossEmail ? `?bossEmail=${encodeURIComponent(bossEmail)}` : ''}` as const,
- },
TEST_DRIVE_DEMO_ROOT: 'onboarding/test-drive/demo',
AUTO_SUBMIT_MODAL_ROOT: '/auto-submit',
WORKSPACE_CONFIRMATION: {
diff --git a/src/SCREENS.ts b/src/SCREENS.ts
index adf6ea66043f..1eac043c8897 100644
--- a/src/SCREENS.ts
+++ b/src/SCREENS.ts
@@ -975,9 +975,6 @@ const SCREENS = {
ROOT: 'MigratedUserWelcomeModal_Root',
},
- TEST_DRIVE_MODAL: {
- ROOT: 'TestDrive_Modal_Root',
- },
TEST_DRIVE_DEMO: {
ROOT: 'TestDrive_Demo_Root',
},
diff --git a/src/components/FeatureTrainingModal.tsx b/src/components/FeatureTrainingModal.tsx
index 970831c88cc0..e5f058eda17a 100644
--- a/src/components/FeatureTrainingModal.tsx
+++ b/src/components/FeatureTrainingModal.tsx
@@ -157,5 +157,3 @@ function FeatureTrainingModal({
}
export default FeatureTrainingModal;
-
-export type {FeatureTrainingModalProps};
diff --git a/src/components/TestDrive/Modal/AdminTestDriveModal.tsx b/src/components/TestDrive/Modal/AdminTestDriveModal.tsx
deleted file mode 100644
index 05beead52ea1..000000000000
--- a/src/components/TestDrive/Modal/AdminTestDriveModal.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import React from 'react';
-import {shouldOpenRHPVariant} from '@components/SidePanel/RHPVariantTest';
-import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
-import Log from '@libs/Log';
-import Navigation from '@libs/Navigation/Navigation';
-import TransitionTracker from '@libs/Navigation/TransitionTracker';
-import {isAdminRoom} from '@libs/ReportUtils';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import BaseTestDriveModal from './BaseTestDriveModal';
-
-function AdminTestDriveModal() {
- const {translate} = useLocalize();
- const [onboarding] = useOnyx(ONYXKEYS.NVP_ONBOARDING);
- const [onboardingReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${onboarding?.chatReportID}`);
-
- const navigate = () => {
- Log.hmmm('[AdminTestDriveModal] Navigate function called');
- TransitionTracker.runAfterTransitions({
- callback: () => {
- Log.hmmm('[AdminTestDriveModal] Calling Navigation.navigate()');
- Navigation.navigate(ROUTES.TEST_DRIVE_DEMO_ROOT);
- },
- waitForUpcomingTransition: true,
- });
- };
-
- const skipTestDrive = () => {
- Log.hmmm('[AdminTestDriveModal] Skip test drive function called');
- Navigation.dismissModal();
-
- if (shouldOpenRHPVariant()) {
- Log.hmmm('[AdminTestDriveModal] User was redirected to Workspace Editor, skipping navigation to admin room');
- return;
- }
-
- Log.hmmm('[AdminTestDriveModal] Running after interactions');
- Navigation.setNavigationActionToMicrotaskQueue(() => {
- if (!isAdminRoom(onboardingReport)) {
- Log.hmmm('[AdminTestDriveModal] Not an admin room');
- return;
- }
-
- Log.hmmm('[AdminTestDriveModal] Navigating to report', {reportID: onboardingReport?.reportID});
- Navigation.navigate(ROUTES.REPORT_WITH_ID.getRoute(onboardingReport?.reportID));
- });
- };
-
- return (
-
- );
-}
-
-export default AdminTestDriveModal;
diff --git a/src/components/TestDrive/Modal/BaseTestDriveModal.tsx b/src/components/TestDrive/Modal/BaseTestDriveModal.tsx
deleted file mode 100644
index ce30a798bdb7..000000000000
--- a/src/components/TestDrive/Modal/BaseTestDriveModal.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-import React, {useEffect} from 'react';
-import TestDrive from '@assets/images/test-drive.svg';
-import type {FeatureTrainingModalProps} from '@components/FeatureTrainingModal';
-import FeatureTrainingModal from '@components/FeatureTrainingModal';
-import useLocalize from '@hooks/useLocalize';
-import useResponsiveLayout from '@hooks/useResponsiveLayout';
-import useThemeStyles from '@hooks/useThemeStyles';
-import {setOnboardingTestDriveModalDismissed} from '@libs/actions/Welcome';
-import Navigation from '@libs/Navigation/Navigation';
-import CONST from '@src/CONST';
-
-type BaseTestDriveModalProps = Pick<
- FeatureTrainingModalProps,
- | 'children'
- | 'description'
- | 'onConfirm'
- | 'shouldCloseOnConfirm'
- | 'shouldRenderHTMLDescription'
- | 'avoidKeyboard'
- | 'shouldShowConfirmationLoader'
- | 'canConfirmWhileOffline'
- | 'onHelp'
- | 'shouldCallOnHelpWhenModalHidden'
->;
-
-function BaseTestDriveModal({
- description,
- onConfirm,
- onHelp,
- children,
- shouldCloseOnConfirm,
- shouldRenderHTMLDescription,
- avoidKeyboard,
- shouldShowConfirmationLoader,
- canConfirmWhileOffline,
- shouldCallOnHelpWhenModalHidden,
-}: BaseTestDriveModalProps) {
- const styles = useThemeStyles();
- const {translate} = useLocalize();
- const {shouldUseNarrowLayout} = useResponsiveLayout();
-
- useEffect(
- () => () => {
- // On Android, when the app is closed, this callback still gets executed, and `currentRoute` is set to an empty string (`''`).
- const currentRoute = Navigation.getActiveRoute();
- if (!currentRoute) {
- return;
- }
- setOnboardingTestDriveModalDismissed();
- },
- [],
- );
-
- return (
-
- {children}
-
- );
-}
-
-export default BaseTestDriveModal;
diff --git a/src/components/TestDrive/Modal/EmployeeTestDriveModal.tsx b/src/components/TestDrive/Modal/EmployeeTestDriveModal.tsx
deleted file mode 100644
index 4521035faba7..000000000000
--- a/src/components/TestDrive/Modal/EmployeeTestDriveModal.tsx
+++ /dev/null
@@ -1,155 +0,0 @@
-import {useRoute} from '@react-navigation/native';
-import {validTransactionDraftIDsSelector} from '@selectors/TransactionDraft';
-import {format} from 'date-fns';
-import {Str} from 'expensify-common';
-import React, {useCallback, useMemo, useState} from 'react';
-import TestReceipt from '@assets/images/fake-test-drive-employee-receipt.jpg';
-import TextInput from '@components/TextInput';
-import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
-import useLocalize from '@hooks/useLocalize';
-import useOnboardingMessages from '@hooks/useOnboardingMessages';
-import useOnyx from '@hooks/useOnyx';
-import usePersonalPolicy from '@hooks/usePersonalPolicy';
-import {
- initMoneyRequest,
- setMoneyRequestAmount,
- setMoneyRequestCreated,
- setMoneyRequestDescription,
- setMoneyRequestMerchant,
- setMoneyRequestParticipants,
-} from '@libs/actions/IOU/MoneyRequest';
-import {setMoneyRequestReceipt} from '@libs/actions/IOU/Receipt';
-import {verifyTestDriveRecipient} from '@libs/actions/Onboarding';
-import setTestReceipt from '@libs/actions/setTestReceipt';
-import type AccountExistsError from '@libs/Errors/AccountExistsError';
-import Log from '@libs/Log';
-import Navigation from '@libs/Navigation/Navigation';
-import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
-import type {TestDriveModalNavigatorParamList} from '@libs/Navigation/types';
-import {hasOnlyPersonalPolicies as hasOnlyPersonalPoliciesUtil} from '@libs/PolicyUtils';
-import {generateReportID} from '@libs/ReportUtils';
-import {generateAccountID} from '@libs/UserUtils';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import type SCREENS from '@src/SCREENS';
-import BaseTestDriveModal from './BaseTestDriveModal';
-
-function EmployeeTestDriveModal() {
- const {translate} = useLocalize();
- const reportID = generateReportID();
- const [report] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${reportID}`);
- const [parentReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID}`);
- const [currentDate] = useOnyx(ONYXKEYS.CURRENT_DATE);
- const route = useRoute>();
- const [bossEmail, setBossEmail] = useState(route.params?.bossEmail ?? '');
- const [formError, setFormError] = useState();
- const [isLoading, setIsLoading] = useState(false);
- const {testDrive} = useOnboardingMessages();
- const currentUserPersonalDetails = useCurrentUserPersonalDetails();
- const personalPolicy = usePersonalPolicy();
- const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY);
- const hasOnlyPersonalPolicies = useMemo(() => hasOnlyPersonalPoliciesUtil(allPolicies), [allPolicies]);
- const [draftTransactionIDs] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, {selector: validTransactionDraftIDsSelector});
-
- const onBossEmailChange = useCallback((value: string) => {
- setBossEmail(value);
- setFormError(undefined);
- }, []);
-
- const navigate = () => {
- Log.hmmm('[EmployeeTestDriveModal] Navigate function called', {bossEmail});
- const loginTrim = bossEmail.trim();
- if (!loginTrim || !Str.isValidEmail(loginTrim)) {
- setFormError(translate('common.error.email'));
- return;
- }
-
- setIsLoading(true);
-
- verifyTestDriveRecipient(bossEmail)
- .then(() => {
- Log.hmmm('[EmployeeTestDriveModal] Test drive recipient verified');
- setTestReceipt(
- TestReceipt,
- 'jpg',
- (source, _, filename) => {
- const transactionID = CONST.IOU.OPTIMISTIC_TRANSACTION_ID;
-
- initMoneyRequest({
- reportID,
- personalPolicy,
- isFromGlobalCreate: false,
- newIouRequestType: CONST.IOU.REQUEST_TYPE.SCAN,
- report,
- parentReport,
- currentDate,
- currentUserPersonalDetails,
- hasOnlyPersonalPolicies,
- draftTransactionIDs,
- });
-
- setMoneyRequestReceipt(transactionID, source, filename, true, CONST.TEST_RECEIPT.FILE_TYPE, false, true);
-
- setMoneyRequestParticipants(transactionID, [
- {
- accountID: generateAccountID(bossEmail),
- login: bossEmail,
- displayName: bossEmail,
- selected: true,
- },
- ]);
- setMoneyRequestAmount(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.AMOUNT, testDrive.EMPLOYEE_FAKE_RECEIPT.CURRENCY);
- setMoneyRequestDescription(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.DESCRIPTION, true);
- setMoneyRequestMerchant(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.MERCHANT, true);
- setMoneyRequestCreated(transactionID, format(new Date(), CONST.DATE.FNS_FORMAT_STRING), true);
-
- Log.hmmm('[EmployeeTestDriveModal] Running after interactions');
- Navigation.goBack();
- Log.hmmm('[EmployeeTestDriveModal] Calling Navigation.goBack() and Navigation.navigate()');
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CONFIRMATION.getRoute(CONST.IOU.ACTION.CREATE, CONST.IOU.TYPE.SUBMIT, transactionID, reportID));
- },
- () => {
- Log.hmmm('[EmployeeTestDriveModal] Error setting test receipt');
- setIsLoading(false);
- setFormError(translate('common.genericErrorMessage'));
- },
- );
- })
- .catch((e: AccountExistsError) => {
- Log.hmmm('[EmployeeTestDriveModal] Error verifying test drive recipient', {error: e});
- setIsLoading(false);
- setFormError(e.translationKey ? translate(e.translationKey) : 'common.genericErrorMessage');
- });
- };
-
- const skipTestDrive = () => {
- Navigation.dismissModal();
- };
-
- return (
-
-
-
- );
-}
-
-export default EmployeeTestDriveModal;
diff --git a/src/components/TestDrive/Modal/index.tsx b/src/components/TestDrive/Modal/index.tsx
deleted file mode 100644
index 0135f421c801..000000000000
--- a/src/components/TestDrive/Modal/index.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from 'react';
-import useOnyx from '@hooks/useOnyx';
-import isTrackOnboardingChoice from '@libs/OnboardingUtils';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import AdminTestDriveModal from './AdminTestDriveModal';
-import EmployeeTestDriveModal from './EmployeeTestDriveModal';
-
-function TestDriveModal() {
- const [introSelected] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED);
- const isAdminTester = introSelected?.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || isTrackOnboardingChoice(introSelected?.choice);
-
- return isAdminTester ? : ;
-}
-
-export default TestDriveModal;
diff --git a/src/components/TestDrive/TestDriveDemo.tsx b/src/components/TestDrive/TestDriveDemo.tsx
index 6e90b8a1601a..14cab1d5525e 100644
--- a/src/components/TestDrive/TestDriveDemo.tsx
+++ b/src/components/TestDrive/TestDriveDemo.tsx
@@ -109,7 +109,7 @@ function TestDriveDemo() {
Navigation.goBack();
if (shouldOpenRHPVariant()) {
- Log.hmmm('[AdminTestDriveModal] User was redirected to Workspace Editor, skipping navigation to admin room');
+ Log.hmmm('[TestDriveDemo] User was redirected to Workspace Editor, skipping navigation to admin room');
return;
}
if (isAdminRoom(onboardingReport)) {
diff --git a/src/languages/de.ts b/src/languages/de.ts
index 6b151b307610..cd08ee09f298 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -3375,9 +3375,6 @@ ${amount} für ${merchant} – ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Machen Sie eine [Probefahrt](${testDriveURL})` : 'Mach eine Probefahrt'),
embeddedDemoIframeTitle: 'Testversion',
- employeeFakeReceipt: {
- description: 'Mein Probefahrtbeleg!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Geld zurückzubekommen ist so einfach wie das Senden einer Nachricht. Gehen wir die Grundlagen durch.',
@@ -9773,18 +9770,6 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
quickAction: {
takeATwoMinuteTestDrive: 'Mach eine 2-minütige Probefahrt',
},
- modal: {
- title: 'Probier uns aus',
- description: 'Machen Sie eine kurze Produkttour, um sich schnell zurechtzufinden.',
- confirmText: 'Testversion starten',
- helpText: 'Überspringen',
- employee: {
- description:
- 'Verschaffe deinem Team 3 kostenlose Monate Expensify! Gib unten einfach die E-Mail-Adresse deiner oder deines Vorgesetzten ein und sende eine Testausgabe.',
- email: 'Gib die E-Mail-Adresse deiner Chefin/deines Chefs ein',
- error: 'Dieses Mitglied besitzt einen Arbeitsbereich, bitte gib ein neues Mitglied zum Testen ein.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Du testest Expensify gerade ausprobieren',
readyForTheRealThing: 'Bereit für das Richtige?',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 882c80fbcd9a..fad593ace422 100644
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -3469,9 +3469,6 @@ const translations = {
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Take a [test drive](${testDriveURL})` : 'Take a test drive'),
embeddedDemoIframeTitle: 'Test Drive',
- employeeFakeReceipt: {
- description: 'My test drive receipt!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Getting paid back is as easy as sending a message. Let’s go over the basics.',
@@ -9849,17 +9846,6 @@ const translations = {
quickAction: {
takeATwoMinuteTestDrive: 'Take a 2-minute test drive',
},
- modal: {
- title: 'Take us for a test drive',
- description: 'Take a quick product tour to get up to speed fast.',
- confirmText: 'Start test drive',
- helpText: 'Skip',
- employee: {
- description: 'Get your team 3 free months of Expensify! Just enter your boss’s email below and send them a test expense.',
- email: "Enter your boss's email",
- error: 'That member owns a workspace, please input a new member to test.',
- },
- },
banner: {
currentlyTestDrivingExpensify: "You're currently test driving Expensify",
readyForTheRealThing: 'Ready for the real thing?',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 646adfc067b1..4d9590669067 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -3251,9 +3251,6 @@ ${amount} para ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}) => (testDriveURL ? `Haz una [prueba](${testDriveURL})` : 'Haz una prueba'),
embeddedDemoIframeTitle: 'Prueba',
- employeeFakeReceipt: {
- description: '¡Mi recibo de prueba!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Que te reembolsen es tan fácil como enviar un mensaje. Repasemos lo básico.',
@@ -9928,18 +9925,6 @@ ${amount} para ${merchant} - ${date}`,
quickAction: {
takeATwoMinuteTestDrive: 'Haz una prueba de 2 minutos',
},
- modal: {
- title: 'Haz una prueba con nosotros',
- description: 'Haz un recorrido rápido por el producto para ponerte al día rápidamente.',
- confirmText: 'Iniciar prueba',
- helpText: 'Saltar',
- employee: {
- description:
- 'Consigue 3 meses gratis de Expensify para tu equipo. Solo introduce el correo electrónico de tu jefe abajo para enviarle un gasto escaneado de prueba.',
- email: 'Introduce el correo electrónico de tu jefe',
- error: 'Ese miembro es propietario de un espacio de trabajo, por favor introduce un nuevo miembro para probar.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Actualmente estás probando Expensify',
readyForTheRealThing: '¿Listo para la versión real?',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 4228dd926b5d..6fba206d3815 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -3383,9 +3383,6 @@ ${amount} pour ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Faites un [essai](${testDriveURL})` : 'Faites un essai'),
embeddedDemoIframeTitle: 'Essai gratuit',
- employeeFakeReceipt: {
- description: "Mon reçu d'essai routier !",
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Se faire rembourser est aussi simple qu’envoyer un message. Passons en revue les bases.',
@@ -9805,18 +9802,6 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
quickAction: {
takeATwoMinuteTestDrive: 'Faites un essai de 2 minutes',
},
- modal: {
- title: 'Testez-nous en conditions réelles',
- description: 'Faites une brève visite du produit pour vous familiariser rapidement.',
- confirmText: 'Commencer l’essai',
- helpText: 'Ignorer',
- employee: {
- description:
- 'Offrez à votre équipe 3 mois gratuits d’Expensify ! Il suffit de saisir l’e‑mail de votre responsable ci‑dessous et de lui envoyer une dépense test.',
- email: 'Saisissez l’e-mail de votre responsable',
- error: 'Ce membre possède un espace de travail, veuillez saisir un nouveau membre pour effectuer le test.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Vous êtes actuellement en train de tester Expensify',
readyForTheRealThing: 'Prêt pour de vrai ?',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 6d49a476e78a..044b9df68b6e 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -3368,9 +3368,6 @@ ${amount} per ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Fai un [giro di prova](${testDriveURL})` : 'Fai un giro di prova'),
embeddedDemoIframeTitle: 'Prova su strada',
- employeeFakeReceipt: {
- description: 'La ricevuta del mio test drive!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Essere rimborsati è facile quanto inviare un messaggio. Vediamo le basi.',
@@ -9761,18 +9758,6 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
quickAction: {
takeATwoMinuteTestDrive: 'Fai una prova di 2 minuti',
},
- modal: {
- title: 'Mettici alla prova',
- description: 'Fai un breve tour del prodotto per metterti subito al passo.',
- confirmText: 'Avvia prova di guida',
- helpText: 'Salta',
- employee: {
- description:
- 'Ottieni per il tuo team 3 mesi gratuiti di Expensify! Ti basta inserire l’email del tuo capo qui sotto e inviargli una spesa di prova.',
- email: "Inserisci l'email del tuo capo",
- error: 'Quella persona è titolare di uno spazio di lavoro, inserisci un nuovo membro per effettuare il test.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Al momento stai provando Expensify',
readyForTheRealThing: 'Pronto per la cosa reale?',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index a1d3ec6671d0..4d0e008a9db9 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -3344,9 +3344,6 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `[テストドライブ](${testDriveURL})を試す` : '試してみる'),
embeddedDemoIframeTitle: '試用ドライブ',
- employeeFakeReceipt: {
- description: '私の試乗の領収書!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: '返金を受け取るのは、メッセージを送るくらい簡単です。基本を確認しましょう。',
@@ -9638,18 +9635,6 @@ ${reportName}`,
quickAction: {
takeATwoMinuteTestDrive: '2分間のテストドライブを試す',
},
- modal: {
- title: 'まずはお試しください',
- description: '短時間のプロダクトツアーで、すぐに使いこなせるようになりましょう。',
- confirmText: '試用を開始',
- helpText: 'スキップ',
- employee: {
- description:
- 'あなたのチームにExpensify を3か月間無料で提供しましょう!以下に上司のメールアドレスを入力して、テスト経費を送信してください。',
- email: '上司のメールアドレスを入力してください',
- error: 'そのメンバーはワークスペースの所有者です。テストするために新しいメンバーを入力してください。',
- },
- },
banner: {
currentlyTestDrivingExpensify: '現在、Expensify を試用中です',
readyForTheRealThing: '本番の準備はできましたか?',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 444312f5b10b..d593c5ea66fe 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -3365,9 +3365,6 @@ ${amount} voor ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Maak een [proefrit](${testDriveURL})` : 'Maak een proefrit'),
embeddedDemoIframeTitle: 'Proefrit',
- employeeFakeReceipt: {
- description: 'Mijn testritbonnetje!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Terugbetaald worden is net zo eenvoudig als een bericht sturen. Laten we de basis doornemen.',
@@ -9727,18 +9724,6 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
quickAction: {
takeATwoMinuteTestDrive: 'Maak een proefrit van 2 minuten',
},
- modal: {
- title: 'Probeer ons uit',
- description: 'Volg een korte producttour om snel op de hoogte te zijn.',
- confirmText: 'Proefrit starten',
- helpText: 'Overslaan',
- employee: {
- description:
- 'Geef je team 3 gratis maanden Expensify! Vul hieronder het e-mailadres van je baas in en stuur hem of haar een proefdeclaratie.',
- email: 'Voer het e-mailadres van je/uw baas in',
- error: 'Dat lid is eigenaar van een werkruimte, voer een nieuw lid in om te testen.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Je bent Expensify momenteel aan het uitproberen',
readyForTheRealThing: 'Klaar voor het echte werk?',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 3ef4e94af024..33fa19eb160a 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -3358,9 +3358,6 @@ ${amount} dla ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Zrób [jazdę próbną](${testDriveURL})` : 'Wypróbuj wersję testową'),
embeddedDemoIframeTitle: 'Jazda próbna',
- employeeFakeReceipt: {
- description: 'Mój paragon za jazdę próbną!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Otrzymanie zwrotu jest tak proste jak wysłanie wiadomości. Omówmy podstawy.',
@@ -9712,18 +9709,6 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
quickAction: {
takeATwoMinuteTestDrive: 'Wypróbuj w 2 minuty',
},
- modal: {
- title: 'Wypróbuj nas w praktyce',
- description: 'Zrób krótkie wprowadzenie do produktu, aby szybko się wdrożyć.',
- confirmText: 'Rozpocznij jazdę testową',
- helpText: 'Pomiń',
- employee: {
- description:
- 'Zapewnij swojemu zespołowi 3 darmowe miesiące Expensify! Wpisz poniżej adres e-mail swojego szefa i wyślij mu przykładowy wydatek.',
- email: 'Wpisz adres e-mail swojego szefa',
- error: 'Ten członek jest właścicielem przestrzeni roboczej, wprowadź nowego członka do przetestowania.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Aktualnie testujesz Expensify',
readyForTheRealThing: 'Gotowy na prawdziwe wyzwanie?',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 81ac25ce8f49..bbc335ec4d3b 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -3355,9 +3355,6 @@ ${amount} para ${merchant} - ${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `Faça um [test drive](${testDriveURL})` : 'Faça um test drive'),
embeddedDemoIframeTitle: 'Test Drive',
- employeeFakeReceipt: {
- description: 'Meu recibo de test drive!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: 'Ser reembolsado é tão fácil quanto enviar uma mensagem. Vamos revisar o básico.',
@@ -9716,18 +9713,6 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
quickAction: {
takeATwoMinuteTestDrive: 'Faça um test drive de 2 minutos',
},
- modal: {
- title: 'Faça um test drive conosco',
- description: 'Faça um rápido tour pelo produto para se atualizar rapidamente.',
- confirmText: 'Iniciar test drive',
- helpText: 'Pular',
- employee: {
- description:
- 'Garanta para sua equipe 3 meses grátis de Expensify! Basta inserir o e-mail da sua chefia abaixo e enviar uma despesa de teste.',
- email: 'Insira o e-mail do seu chefe',
- error: 'Essa pessoa já é dona de um espaço de trabalho, insira uma nova pessoa para testar.',
- },
- },
banner: {
currentlyTestDrivingExpensify: 'Você está testando o Expensify no momento',
readyForTheRealThing: 'Pronto para o que vale de verdade?',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index d7f6e1eecc2b..e80892c9ed77 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -3271,9 +3271,6 @@ ${amount},商户:${merchant} - 日期:${date}`,
testDrive: {
name: ({testDriveURL}: {testDriveURL?: string}) => (testDriveURL ? `进行[试用体验](${testDriveURL})` : '试用体验'),
embeddedDemoIframeTitle: '试用',
- employeeFakeReceipt: {
- description: '我的试驾收据!',
- },
},
messages: {
onboardingEmployerOrSubmitMessage: '报销就像发消息一样简单。让我们先了解一下基础内容。',
@@ -9455,17 +9452,6 @@ ${reportName}`,
quickAction: {
takeATwoMinuteTestDrive: '体验 2 分钟试用',
},
- modal: {
- title: '试用一下我们的产品',
- description: '快速浏览产品,立即上手使用。',
- confirmText: '开始试用',
- helpText: '跳过',
- employee: {
- description: '为你的团队获取3 个月免费的 Expensify!只需在下面输入你老板的邮箱并发送一笔测试报销。',
- email: '输入你老板的邮箱',
- error: '该成员拥有一个工作区,请输入一位新成员进行测试。',
- },
- },
banner: {
currentlyTestDrivingExpensify: '您目前正在试用 Expensify',
readyForTheRealThing: '准备好来点真正的了吗?',
diff --git a/src/libs/API/parameters/VerifyTestDriveRecipientParams.ts b/src/libs/API/parameters/VerifyTestDriveRecipientParams.ts
deleted file mode 100644
index 905179406a15..000000000000
--- a/src/libs/API/parameters/VerifyTestDriveRecipientParams.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-type VerifyTestDriveRecipientParams = {
- email: string;
-};
-
-export default VerifyTestDriveRecipientParams;
diff --git a/src/libs/API/parameters/index.ts b/src/libs/API/parameters/index.ts
index cc5a170a55bf..f769632dfe53 100644
--- a/src/libs/API/parameters/index.ts
+++ b/src/libs/API/parameters/index.ts
@@ -499,7 +499,6 @@ export type {default as SetVacationDelegateParams} from './SetVacationDelegatePa
export type {default as ExportMultiLevelTagsSpreadSheetParams} from './ExportMultiLevelTagsSpreadSheetParams';
export type {default as ReopenReportParams} from './ReopenReportParams';
export type {default as OpenUnreportedExpensesPageParams} from './OpenUnreportedExpensesPageParams';
-export type {default as VerifyTestDriveRecipientParams} from './VerifyTestDriveRecipientParams';
export type {default as ExportSearchWithTemplateParams} from './ExportSearchWithTemplateParams';
export type {default as QueueExportSearchItemsToCSVParams} from './QueueExportSearchItemsToCSVParams';
export type {default as QueueExportSearchWithTemplateParams} from './QueueExportSearchWithTemplateParams';
diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts
index a2953e06b524..0ac47d89085b 100644
--- a/src/libs/API/types.ts
+++ b/src/libs/API/types.ts
@@ -1517,7 +1517,6 @@ const SIDE_EFFECT_REQUEST_COMMANDS = {
LOG_OUT: 'LogOut',
CREATE_DIGITAL_WALLET: 'CreateDigitalWallet',
- VERIFY_TEST_DRIVE_RECIPIENT: 'VerifyTestDriveRecipient',
LOCK_ACCOUNT: 'LockAccount',
SET_VACATION_DELEGATE: 'SetVacationDelegate',
CALCULATE_BILL_NEW_DOT: 'CalculateBillNewDot',
@@ -1562,7 +1561,6 @@ type SideEffectRequestCommandParameters = {
[SIDE_EFFECT_REQUEST_COMMANDS.ADD_WORK_EMAIL]: Parameters.AddWorkEmailParams;
[SIDE_EFFECT_REQUEST_COMMANDS.LOG_OUT]: Parameters.LogOutParams;
[SIDE_EFFECT_REQUEST_COMMANDS.CREATE_DIGITAL_WALLET]: Parameters.CreateDigitalWalletParams;
- [SIDE_EFFECT_REQUEST_COMMANDS.VERIFY_TEST_DRIVE_RECIPIENT]: Parameters.VerifyTestDriveRecipientParams;
[SIDE_EFFECT_REQUEST_COMMANDS.LOCK_ACCOUNT]: Parameters.LockAccountParams;
[SIDE_EFFECT_REQUEST_COMMANDS.SET_VACATION_DELEGATE]: Parameters.SetVacationDelegateParams;
[SIDE_EFFECT_REQUEST_COMMANDS.CALCULATE_BILL_NEW_DOT]: null;
diff --git a/src/libs/Errors/AccountExistsError.ts b/src/libs/Errors/AccountExistsError.ts
deleted file mode 100644
index 4bf3ca199b7f..000000000000
--- a/src/libs/Errors/AccountExistsError.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type {TranslationPaths} from '@src/languages/types';
-
-class AccountExistsError extends Error {
- translationKey: TranslationPaths;
-
- constructor(accountExists: boolean | undefined) {
- super();
- // If accountExists is undefined, it means we couldn't determine the account status due to an unstable internet connection.
- this.translationKey = accountExists === undefined ? 'common.unstableInternetConnection' : 'testDrive.modal.employee.error';
- }
-}
-
-export default AccountExistsError;
diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.tsx b/src/libs/Navigation/AppNavigator/AuthScreens.tsx
index d2b0c1bf7346..66a88a54d9f8 100644
--- a/src/libs/Navigation/AppNavigator/AuthScreens.tsx
+++ b/src/libs/Navigation/AppNavigator/AuthScreens.tsx
@@ -60,7 +60,6 @@ import FeatureTrainingModalNavigator from './Navigators/FeatureTrainingModalNavi
import MigratedUserWelcomeModalNavigator from './Navigators/MigratedUserWelcomeModalNavigator';
import MultifactorAuthenticationModalNavigator from './Navigators/MultifactorAuthenticationModalNavigator';
import OnboardingModalNavigator from './Navigators/OnboardingModalNavigator';
-import TestDriveModalNavigator from './Navigators/TestDriveModalNavigator';
import TestToolsModalNavigator from './Navigators/TestToolsModalNavigator';
import TestDriveDemoNavigator from './TestDriveDemoNavigator';
import ThreeDSAuthHandler from './ThreeDSAuthHandler';
@@ -306,11 +305,6 @@ function AuthScreens() {
options={rootNavigatorScreenOptions.centeredModalNavigator}
component={MigratedUserWelcomeModalNavigator}
/>
-
();
-
-function TestDriveModalNavigator() {
- const {shouldUseNarrowLayout} = useResponsiveLayout();
- return (
-
-
-
-
-
-
-
- );
-}
-
-export default TestDriveModalNavigator;
diff --git a/src/libs/Navigation/AppNavigator/createRootStackNavigator/GetStateForActionHandlers.ts b/src/libs/Navigation/AppNavigator/createRootStackNavigator/GetStateForActionHandlers.ts
index 5662a7220080..b0604b6cf80f 100644
--- a/src/libs/Navigation/AppNavigator/createRootStackNavigator/GetStateForActionHandlers.ts
+++ b/src/libs/Navigation/AppNavigator/createRootStackNavigator/GetStateForActionHandlers.ts
@@ -36,7 +36,6 @@ const MODAL_ROUTES_TO_DISMISS = new Set([
NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR,
NAVIGATORS.FEATURE_TRAINING_MODAL_NAVIGATOR,
NAVIGATORS.SHARE_MODAL_NAVIGATOR,
- NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR,
NAVIGATORS.TEST_TOOLS_MODAL_NAVIGATOR,
SCREENS.NOT_FOUND,
SCREENS.REPORT_ATTACHMENTS,
diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts
index b5aa0a4456c6..500a31e6bd20 100644
--- a/src/libs/Navigation/linkingConfig/config.ts
+++ b/src/libs/Navigation/linkingConfig/config.ts
@@ -53,15 +53,6 @@ const config: LinkingOptions['config'] = {
},
},
- [NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR]: {
- screens: {
- [SCREENS.TEST_DRIVE_MODAL.ROOT]: {
- path: ROUTES.TEST_DRIVE_MODAL_ROOT.route,
- exact: true,
- },
- },
- },
-
[NAVIGATORS.TEST_DRIVE_DEMO_NAVIGATOR]: {
screens: {
[SCREENS.TEST_DRIVE_DEMO.ROOT]: {
diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts
index 70c9c2f4bea4..33e4b68febe6 100644
--- a/src/libs/Navigation/types.ts
+++ b/src/libs/Navigation/types.ts
@@ -2962,12 +2962,6 @@ type MigratedUserModalNavigatorParamList = {
[SCREENS.MIGRATED_USER_WELCOME_MODAL.ROOT]: undefined;
};
-type TestDriveModalNavigatorParamList = {
- [SCREENS.TEST_DRIVE_MODAL.ROOT]: {
- bossEmail?: string;
- };
-};
-
type TestDriveDemoNavigatorParamList = {
[SCREENS.TEST_DRIVE_DEMO.ROOT]: undefined;
};
@@ -3136,7 +3130,6 @@ type AuthScreensParamList = SharedScreensParamList &
[NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR]: NavigatorScreenParams;
[NAVIGATORS.FEATURE_TRAINING_MODAL_NAVIGATOR]: NavigatorScreenParams;
[NAVIGATORS.MIGRATED_USER_MODAL_NAVIGATOR]: NavigatorScreenParams;
- [NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR]: NavigatorScreenParams;
[NAVIGATORS.TEST_DRIVE_DEMO_NAVIGATOR]: NavigatorScreenParams;
[SCREENS.CONNECTION_COMPLETE]: undefined;
[NAVIGATORS.SHARE_MODAL_NAVIGATOR]: NavigatorScreenParams;
@@ -3422,7 +3415,6 @@ export type {
PolicyCopySettingsNavigatorParamList,
TwoFactorAuthNavigatorParamList,
ScheduleCallParamList,
- TestDriveModalNavigatorParamList,
WorkspaceScreenName,
TestDriveDemoNavigatorParamList,
SplitExpenseParamList,
diff --git a/src/libs/actions/Onboarding.ts b/src/libs/actions/Onboarding.ts
index 2fdfc8117474..926a18c5bf54 100644
--- a/src/libs/actions/Onboarding.ts
+++ b/src/libs/actions/Onboarding.ts
@@ -1,7 +1,4 @@
import Onyx from 'react-native-onyx';
-import * as API from '@libs/API';
-import {SIDE_EFFECT_REQUEST_COMMANDS} from '@libs/API/types';
-import AccountExistsError from '@libs/Errors/AccountExistsError';
import ONYXKEYS from '@src/ONYXKEYS';
/**
@@ -18,17 +15,4 @@ function setPersonalDetails(firstName: string, lastName: string) {
Onyx.merge(ONYXKEYS.FORMS.ONBOARDING_PERSONAL_DETAILS_FORM, {firstName, lastName});
}
-function verifyTestDriveRecipient(email: string) {
- // eslint-disable-next-line rulesdir/no-api-side-effects-method
- return API.makeRequestWithSideEffects(SIDE_EFFECT_REQUEST_COMMANDS.VERIFY_TEST_DRIVE_RECIPIENT, {email}).then((response) => {
- // If accountExists is undefined, it means we couldn't determine the account status due to an unstable internet connection.
- if (response?.accountExists === false) {
- // We can invite this user since they do not have an account yet
- return;
- }
-
- throw new AccountExistsError(response?.accountExists);
- });
-}
-
-export {clearPersonalDetailsDraft, setPersonalDetails, verifyTestDriveRecipient};
+export {clearPersonalDetailsDraft, setPersonalDetails};
diff --git a/src/libs/actions/Welcome/OnboardingFlow.ts b/src/libs/actions/Welcome/OnboardingFlow.ts
index 06950b078d27..ca56105fec7c 100644
--- a/src/libs/actions/Welcome/OnboardingFlow.ts
+++ b/src/libs/actions/Welcome/OnboardingFlow.ts
@@ -183,12 +183,6 @@ const getOnboardingMessages = (locale?: Locale) => {
ONBOARDING_TASK_NAME: translate(resolvedLocale, 'onboarding.testDrive.name', {}),
EMBEDDED_DEMO_WHITELIST: ['http://', 'https://', 'about:'] as string[],
EMBEDDED_DEMO_IFRAME_TITLE: translate(resolvedLocale, 'onboarding.testDrive.embeddedDemoIframeTitle'),
- EMPLOYEE_FAKE_RECEIPT: {
- AMOUNT: 2000,
- CURRENCY: 'USD',
- DESCRIPTION: translate(resolvedLocale, 'onboarding.testDrive.employeeFakeReceipt.description'),
- MERCHANT: "Tommy's Tires",
- },
};
const addExpenseApprovalsTask: OnboardingTask = {
type: CONST.ONBOARDING_TASK_TYPE.ADD_EXPENSE_APPROVALS,
diff --git a/src/libs/actions/Welcome/index.ts b/src/libs/actions/Welcome/index.ts
index 17514ad70d94..ab8bcc1cbf45 100644
--- a/src/libs/actions/Welcome/index.ts
+++ b/src/libs/actions/Welcome/index.ts
@@ -94,10 +94,6 @@ function setOnboardingMergeAccountStepValue(value: boolean, skipped = false) {
Onyx.merge(ONYXKEYS.NVP_ONBOARDING, {isMergeAccountStepCompleted: value, isMergeAccountStepSkipped: skipped});
}
-function setOnboardingTestDriveModalDismissed() {
- Onyx.merge(ONYXKEYS.NVP_ONBOARDING, {testDriveModalDismissed: true});
-}
-
function completeHybridAppOnboarding() {
if (!CONFIG.IS_HYBRID_APP) {
return;
@@ -223,7 +219,6 @@ export {
updateOnboardingValuesAndNavigation,
setOnboardingUserReportedIntegration,
setOnboardingPersonalTrackGoal,
- setOnboardingTestDriveModalDismissed,
addWorkEmailFormError,
clearWorkEmailFormErrors,
};
diff --git a/src/libs/actions/setTestReceipt/getFile/index.ios.ts b/src/libs/actions/setTestReceipt/getFile/index.ios.ts
deleted file mode 100644
index 998109baaeb5..000000000000
--- a/src/libs/actions/setTestReceipt/getFile/index.ios.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import ReactNativeBlobUtil from 'react-native-blob-util';
-import type GetFile from './types';
-
-const getFile: GetFile = (source, path, assetExtension) => {
- return ReactNativeBlobUtil.config({
- fileCache: true,
- appendExt: assetExtension,
- path,
- }).fetch('GET', source);
-};
-
-export default getFile;
diff --git a/src/libs/actions/setTestReceipt/getFile/index.ts b/src/libs/actions/setTestReceipt/getFile/index.ts
deleted file mode 100644
index 9514a69969e7..000000000000
--- a/src/libs/actions/setTestReceipt/getFile/index.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import ReactNativeBlobUtil from 'react-native-blob-util';
-import RNFS from 'react-native-fs';
-import CONFIG from '@src/CONFIG';
-import CONST from '@src/CONST';
-import type GetFile from './types';
-
-const getFile: GetFile = (source, path, assetExtension) => {
- if (CONFIG.ENVIRONMENT === CONST.ENVIRONMENT.DEV) {
- return ReactNativeBlobUtil.config({
- fileCache: true,
- appendExt: assetExtension,
- path,
- }).fetch('GET', source);
- }
-
- return RNFS.copyFileRes(`${source}.${assetExtension}`, path);
-};
-
-export default getFile;
diff --git a/src/libs/actions/setTestReceipt/getFile/types.ts b/src/libs/actions/setTestReceipt/getFile/types.ts
deleted file mode 100644
index 3d1300e248c5..000000000000
--- a/src/libs/actions/setTestReceipt/getFile/types.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import type {FetchBlobResponse} from 'react-native-blob-util';
-import type {AssetExtension} from '@userActions/setTestReceipt/types';
-
-type GetFile = (source: string, path: string, assetExtension: AssetExtension) => Promise;
-
-export default GetFile;
diff --git a/src/libs/actions/setTestReceipt/index.native.ts b/src/libs/actions/setTestReceipt/index.native.ts
deleted file mode 100644
index f1d3ed701b54..000000000000
--- a/src/libs/actions/setTestReceipt/index.native.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import {Image} from 'react-native';
-import ReactNativeBlobUtil from 'react-native-blob-util';
-import Log from '@libs/Log';
-import CONST from '@src/CONST';
-import type {FileObject} from '@src/types/utils/Attachment';
-import getFile from './getFile';
-import type {SetTestReceipt} from './types';
-
-const setTestReceipt: SetTestReceipt = (asset, assetExtension, onFileRead, onFileError) => {
- const filename = `${CONST.TEST_RECEIPT.FILENAME}_${Date.now()}.${assetExtension}`;
- const path = `${ReactNativeBlobUtil.fs.dirs.CacheDir}/${filename}`;
- const source = Image.resolveAssetSource(asset).uri;
-
- getFile(source, path, assetExtension)
- .then(() => {
- const file: FileObject = {
- uri: `file://${path}`,
- name: filename,
- type: CONST.TEST_RECEIPT.FILE_TYPE,
- size: 0,
- };
-
- if (!file.uri) {
- Log.warn('Error reading test receipt');
- return;
- }
-
- onFileRead(file.uri, file, filename);
- })
- .catch((error) => {
- Log.warn('Error reading test receipt:', {message: error});
-
- onFileError?.(error);
- });
-};
-
-export default setTestReceipt;
diff --git a/src/libs/actions/setTestReceipt/index.ts b/src/libs/actions/setTestReceipt/index.ts
deleted file mode 100644
index 790e3c099f0f..000000000000
--- a/src/libs/actions/setTestReceipt/index.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import {readFileAsync} from '@libs/fileDownload/FileUtils';
-import Log from '@libs/Log';
-import CONST from '@src/CONST';
-import type {SetTestReceipt} from './types';
-
-const setTestReceipt: SetTestReceipt = (asset, assetExtension, onFileRead, onFileError) => {
- const filename = `${CONST.TEST_RECEIPT.FILENAME}_${Date.now()}.${assetExtension}`;
- readFileAsync(
- asset as string,
- filename,
- (file) => {
- const source = URL.createObjectURL(file);
-
- onFileRead(source, file, filename);
- },
- (error) => {
- Log.warn('Error reading test receipt:', {message: error});
-
- onFileError?.(error);
- },
- CONST.TEST_RECEIPT.FILE_TYPE,
- );
-};
-
-export default setTestReceipt;
diff --git a/src/libs/actions/setTestReceipt/types.ts b/src/libs/actions/setTestReceipt/types.ts
deleted file mode 100644
index 1e705b2b9c1c..000000000000
--- a/src/libs/actions/setTestReceipt/types.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type {ImageSourcePropType} from 'react-native';
-import type {FileObject} from '@src/types/utils/Attachment';
-
-type OnFileRead = (source: string, file: FileObject, filename: string) => void;
-
-type OnFileError = (error: unknown) => void;
-
-type AssetExtension = 'jpg' | 'png';
-
-type SetTestReceipt = (asset: ImageSourcePropType, assetExtension: AssetExtension, onFileRead: OnFileRead, onFileError?: OnFileError) => void;
-
-export type {AssetExtension, SetTestReceipt};
diff --git a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx
index 7be52d6d3536..50d03f2ff167 100644
--- a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx
+++ b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx
@@ -593,12 +593,6 @@ function IOURequestStepConfirmation({
return;
}
- // If the user came from Test Drive modal, we need to take him back there
- if (transaction?.receipt?.isTestDriveReceipt && (transaction.participants?.length ?? 0) > 0) {
- Navigation.goBack(ROUTES.TEST_DRIVE_MODAL_ROOT.getRoute(transaction.participants?.at(0)?.login));
- return;
- }
-
// This has selected the participants from the beginning and the participant field shouldn't be editable.
navigateToStartMoneyRequestStep(requestType, iouType, initialTransactionID, reportID, action, backToReport);
}, [
@@ -607,8 +601,6 @@ function IOURequestStepConfirmation({
isCreatingTrackExpense,
transaction?.isFromGlobalCreate,
transaction?.receipt?.isTestReceipt,
- transaction?.receipt?.isTestDriveReceipt,
- transaction?.participants,
transaction?.participantsAutoAssigned,
transaction?.reportID,
requestType,
diff --git a/src/styles/index.ts b/src/styles/index.ts
index 9d3cd9822b43..1f25b2b6032c 100644
--- a/src/styles/index.ts
+++ b/src/styles/index.ts
@@ -6614,13 +6614,6 @@ const dynamicStyles = (theme: ThemeColors) =>
return {maxHeight: Math.min(CONST.POPOVER_DROPDOWN_MAX_HEIGHT, windowHeight * heightRatio)};
},
- testDriveModalContainer: (shouldUseNarrowLayout: boolean) => ({
- // On small/medium screens, we need to remove the top padding
- paddingTop: 0,
- // On larger screens, we need to prevent the modal from becoming too big
- maxWidth: shouldUseNarrowLayout ? undefined : 500,
- }),
-
getMoneyRequestViewImage: (showBorderless: boolean) => ({
...spacing.mh5,
overflow: 'hidden',
diff --git a/src/types/onyx/Onboarding.ts b/src/types/onyx/Onboarding.ts
index af4dfcefaf3e..5faed3345f57 100644
--- a/src/types/onyx/Onboarding.ts
+++ b/src/types/onyx/Onboarding.ts
@@ -32,9 +32,6 @@ type Onboarding = {
/** A Boolean that tells whether the onboarding flow is loading */
isLoading?: boolean;
-
- /** A Boolean that tells whether the test drive modal has been dismissed */
- testDriveModalDismissed?: boolean;
};
export default Onboarding;
diff --git a/tests/actions/IOUTest/TrackExpenseTest.ts b/tests/actions/IOUTest/TrackExpenseTest.ts
index 35d07099a589..acd0644585f0 100644
--- a/tests/actions/IOUTest/TrackExpenseTest.ts
+++ b/tests/actions/IOUTest/TrackExpenseTest.ts
@@ -132,7 +132,9 @@ describe('actions/IOU/TrackExpense', () => {
return Onyx.clear().then(waitForBatchedUpdates);
});
- afterEach(() => {
+ afterEach(async () => {
+ await mockFetch?.resume?.();
+ await waitForBatchedUpdates();
jest.clearAllMocks();
});
@@ -141,6 +143,10 @@ describe('actions/IOU/TrackExpense', () => {
const selfDMReport: Report = {
...createRandomReport(1, CONST.REPORT.CHAT_TYPE.SELF_DM),
type: CONST.REPORT.TYPE.CHAT,
+ // createRandomReport randomizes isPinned/isOwnPolicyExpenseChat; either being true would force a hidden
+ // report to display in the LHN (shouldOverrideHidden), so pin them down to keep this test deterministic.
+ isPinned: false,
+ isOwnPolicyExpenseChat: false,
participants: {
[RORY_ACCOUNT_ID]: {notificationPreference: CONST.REPORT.NOTIFICATION_PREFERENCE.HIDDEN},
},
diff --git a/tests/actions/ReportTest.ts b/tests/actions/ReportTest.ts
index 856226840a2e..03325c7b2881 100644
--- a/tests/actions/ReportTest.ts
+++ b/tests/actions/ReportTest.ts
@@ -4587,46 +4587,6 @@ describe('actions/Report', () => {
});
});
- it('should not overwrite testDriveModalDismissed when it is already true', async () => {
- const TEST_USER_ACCOUNT_ID = 1;
- const TEST_USER_LOGIN = 'test@test.com';
-
- await Onyx.set(ONYXKEYS.SESSION, {email: TEST_USER_LOGIN, accountID: TEST_USER_ACCOUNT_ID});
- await Onyx.set(ONYXKEYS.NVP_ONBOARDING, {testDriveModalDismissed: true});
- await waitForBatchedUpdates();
-
- const adminsChatReportID = '7957055873634067';
- const onboardingPolicyID = 'A70D00C752416807';
- const engagementChoice = CONST.INTRO_CHOICES.MANAGE_TEAM;
- const {onboardingMessages} = getOnboardingMessages();
-
- Report.completeOnboarding({
- engagementChoice,
- onboardingMessage: onboardingMessages[engagementChoice],
- adminsChatReportID,
- onboardingPolicyID,
- companySize: CONST.ONBOARDING_COMPANY_SIZE.MICRO,
- userReportedIntegration: null,
- introSelected: {choice: engagementChoice},
- isSelfTourViewed: false,
- });
-
- await waitForBatchedUpdates();
-
- const onboarding = await new Promise>((resolve) => {
- const connection = Onyx.connect({
- key: ONYXKEYS.NVP_ONBOARDING,
- callback: (data) => {
- Onyx.disconnect(connection);
- resolve(data);
- },
- });
- });
-
- // testDriveModalDismissed should remain true and not be overwritten to false
- expect(onboarding?.testDriveModalDismissed).toBe(true);
- });
-
describe('openReport with introSelected', () => {
it('should call OpenReport API with introSelected parameter', async () => {
global.fetch = TestHelper.getGlobalFetchMock();