Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6329,8 +6329,6 @@ const CONST = {

EXPENSIFY_ICON_NAME: 'Expensify',

WELCOME_VIDEO_URL: `${CLOUDFRONT_URL}/videos/intro-1280.mp4`,

ONBOARDING_CHOICES: {...onboardingChoices},
SELECTABLE_ONBOARDING_CHOICES: {...selectableOnboardingChoices},
CREATE_EXPENSE_ONBOARDING_CHOICES: {...createExpenseOnboardingChoices},
Expand Down
1 change: 0 additions & 1 deletion src/NAVIGATORS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ export default {
RIGHT_MODAL_NAVIGATOR: 'RightModalNavigator',
ONBOARDING_MODAL_NAVIGATOR: 'OnboardingModalNavigator',
FEATURE_TRAINING_MODAL_NAVIGATOR: 'FeatureTrainingModalNavigator',
EXPLANATION_MODAL_NAVIGATOR: 'ExplanationModalNavigator',
MIGRATED_USER_MODAL_NAVIGATOR: 'MigratedUserModalNavigator',
TEST_DRIVE_MODAL_NAVIGATOR: 'TestDriveModalNavigator',
TEST_DRIVE_DEMO_NAVIGATOR: 'TestDriveDemoNavigator',
Expand Down
1 change: 0 additions & 1 deletion src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3349,7 +3349,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),
},
EXPLANATION_MODAL_ROOT: 'onboarding/explanation',
TEST_DRIVE_MODAL_ROOT: {
route: 'onboarding/test-drive',
getRoute: (bossEmail?: string) => `onboarding/test-drive${bossEmail ? `?bossEmail=${encodeURIComponent(bossEmail)}` : ''}` as const,
Expand Down
4 changes: 0 additions & 4 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -964,10 +964,6 @@ const SCREENS = {
SELECTION: 'Currency_Selection',
},

EXPLANATION_MODAL: {
ROOT: 'Explanation_Modal_Root',
},

MIGRATED_USER_WELCOME_MODAL: {
ROOT: 'MigratedUserWelcomeModal_Root',
},
Expand Down
22 changes: 0 additions & 22 deletions src/components/ExplanationModal.tsx

This file was deleted.

9 changes: 5 additions & 4 deletions src/hooks/useOnboardingFlow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import getCurrentUrl from '@libs/Navigation/currentUrl';
import Navigation from '@libs/Navigation/Navigation';
import TransitionTracker from '@libs/Navigation/TransitionTracker';
import {isLoggingInAsNewUser} from '@libs/SessionUtils';
import {completeHybridAppOnboarding} from '@userActions/Welcome';
import {startOnboardingFlow} from '@userActions/Welcome/OnboardingFlow';
import CONFIG from '@src/CONFIG';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -72,9 +73,10 @@ function useOnboardingFlowRouter() {
return;
}

// When user is transitioning from OldDot to NewDot, we usually show the explanation modal
// Make sure hybrid app onboarding is completed and will not start startOnboardingFlow for users that switched from OldDot.
if (isHybridAppOnboardingCompleted === false) {
Navigation.navigate(ROUTES.EXPLANATION_MODAL_ROOT);
completeHybridAppOnboarding();
return;
}
}

Expand All @@ -89,8 +91,7 @@ function useOnboardingFlowRouter() {
// We use startOnboardingFlow (which calls resetRoot) instead of Navigation.navigate because
// navigate goes through the router where OnboardingGuard would block the navigation.
// waitForProtectedRoutes ensures navigation is ready, which is critical during fresh login.
// Skip when HybridApp explanation modal is active (OldDot-transitioning users).
if (isOnboardingCompleted === false && !(CONFIG.IS_HYBRID_APP && isHybridAppOnboardingCompleted === false)) {
if (isOnboardingCompleted === false) {
Navigation.waitForProtectedRoutes().then(() => {
startOnboardingFlow({
onboardingValuesParam: onboardingValues ?? undefined,
Expand Down
6 changes: 0 additions & 6 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3046,12 +3046,6 @@ ${amount} für ${merchant} – ${date}`,
welcome: 'Willkommen!',
welcomeSignOffTitleManageTeam: 'Sobald du die Aufgaben oben abgeschlossen hast, können wir weitere Funktionen wie Genehmigungs-Workflows und Regeln erkunden!',
welcomeSignOffTitle: 'Schön, dich kennenzulernen!',
explanationModal: {
title: 'Willkommen bei Expensify',
description:
'Eine App, um Ihre geschäftlichen und privaten Ausgaben in Chat-Geschwindigkeit zu verwalten. Probieren Sie es aus und sagen Sie uns, was Sie denken. Da kommt noch viel mehr!',
secondaryDescription: 'Um zurück zu Expensify Classic zu wechseln, tippe einfach auf dein Profilbild > Gehe zu Expensify Classic.',
},
getStarted: 'Loslegen',
whatsYourName: 'Wie heißt du?',
peopleYouMayKnow: 'Prüfen Sie, ob Ihr Team in Expensify ist',
Expand Down
5 changes: 0 additions & 5 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3127,11 +3127,6 @@ const translations = {
welcome: 'Welcome!',
welcomeSignOffTitleManageTeam: 'Once you finish the tasks above, we can explore more functionality like approval workflows and rules!',
welcomeSignOffTitle: "It's great to meet you!",
explanationModal: {
title: 'Welcome to Expensify',
description: 'One app to handle your business and personal spend at the speed of chat. Try it out and let us know what you think. Much more to come!',
secondaryDescription: 'To switch back to Expensify Classic, just tap your profile picture > Go to Expensify Classic.',
},
getStarted: 'Get started',
whatsYourName: "What's your name?",
peopleYouMayKnow: "See if your team's in Expensify",
Expand Down
5 changes: 0 additions & 5 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2916,11 +2916,6 @@ ${amount} para ${merchant} - ${date}`,
welcome: '¡Bienvenido!',
welcomeSignOffTitle: '¡Es un placer conocerte!',
welcomeSignOffTitleManageTeam: 'Una vez que termines las tareas anteriores, podemos explorar más funcionalidades como flujos de aprobación y reglas.',
explanationModal: {
title: 'Bienvenido a Expensify',
description: 'Una aplicación para gestionar en un chat todos los gastos de tu empresa y personales. Inténtalo y dinos qué te parece. ¡Hay mucho más por venir!',
secondaryDescription: 'Para volver a Expensify Classic, simplemente haz click en tu foto de perfil > Ir a Expensify Classic.',
},
getStarted: 'Comenzar',
whatsYourName: '¿Cómo te llamas?',
peopleYouMayKnow: 'Comprueba si tu equipo está en Expensify',
Expand Down
6 changes: 0 additions & 6 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3053,12 +3053,6 @@ ${amount} pour ${merchant} - ${date}`,
welcomeSignOffTitleManageTeam:
'Une fois que vous aurez terminé les tâches ci-dessus, nous pourrons explorer davantage de fonctionnalités, comme les workflows d’approbation et les règles !',
welcomeSignOffTitle: 'Ravi de faire votre connaissance !',
explanationModal: {
title: 'Bienvenue sur Expensify',
description:
'Une seule application pour gérer vos dépenses professionnelles et personnelles à la vitesse d’un chat. Essayez-la et dites-nous ce que vous en pensez. Et ce n’est qu’un début !',
secondaryDescription: 'Pour revenir à Expensify Classic, appuyez simplement sur votre photo de profil > Aller à Expensify Classic.',
},
getStarted: 'Commencer',
whatsYourName: 'Comment vous appelez-vous ?',
peopleYouMayKnow: 'Vérifier si votre équipe est sur Expensify',
Expand Down
5 changes: 0 additions & 5 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3040,11 +3040,6 @@ ${amount} per ${merchant} - ${date}`,
welcome: 'Benvenuto!',
welcomeSignOffTitleManageTeam: 'Una volta completate le attività sopra, potremo esplorare altre funzionalità come i flussi di approvazione e le regole!',
welcomeSignOffTitle: 'È un piacere conoscerti!',
explanationModal: {
title: 'Benvenuto in Expensify',
description: 'Un’unica app per gestire le spese aziendali e personali alla velocità di una chat. Provala e facci sapere cosa ne pensi. E non è che l’inizio!',
secondaryDescription: 'Per tornare a Expensify Classic, tocca l’immagine del tuo profilo > Vai a Expensify Classic.',
},
getStarted: 'Inizia',
whatsYourName: 'Come ti chiami?',
peopleYouMayKnow: 'Verifica se il tuo team è su Expensify',
Expand Down
6 changes: 0 additions & 6 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3016,12 +3016,6 @@ ${date} の ${merchant} への ${amount}`,
welcome: 'ようこそ!',
welcomeSignOffTitleManageTeam: '上記のタスクが完了したら、承認ワークフローやルールなど、さらに多くの機能を試してみましょう!',
welcomeSignOffTitle: 'お会いできてうれしいです!',
explanationModal: {
title: 'Expensify へようこそ',
description:
'1つのアプリで、ビジネスとプライベートの支出をチャットのスピードで管理しましょう。ぜひお試しいただき、ご意見をお聞かせください。今後もさらに機能を追加していきます!',
secondaryDescription: 'Expensify Classic に戻るには、プロフィール写真をタップし、「Expensify Classic に移動」を選択してください。',
},
getStarted: 'はじめる',
whatsYourName: 'あなたの名前は何ですか?',
peopleYouMayKnow: 'あなたのチームが Expensify を利用しているか確認する',
Expand Down
6 changes: 0 additions & 6 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3037,12 +3037,6 @@ ${amount} voor ${merchant} - ${date}`,
welcome: 'Welkom!',
welcomeSignOffTitleManageTeam: 'Zodra je de bovenstaande taken hebt afgerond, kunnen we meer functionaliteit verkennen, zoals goedkeuringsworkflows en regels!',
welcomeSignOffTitle: 'Leuk om je te ontmoeten!',
explanationModal: {
title: 'Welkom bij Expensify',
description:
'Eén app om je zakelijke en persoonlijke uitgaven af te handelen met de snelheid van chat. Probeer het uit en laat ons weten wat je ervan vindt. Er komt nog veel meer aan!',
secondaryDescription: 'Om terug te schakelen naar Expensify Classic, tik je gewoon op je profielfoto > Ga naar Expensify Classic.',
},
getStarted: 'Aan de slag',
whatsYourName: 'Hoe heet je?',
peopleYouMayKnow: 'Kijk of je team al in Expensify zit',
Expand Down
5 changes: 0 additions & 5 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3031,11 +3031,6 @@ ${amount} dla ${merchant} - ${date}`,
welcome: 'Witamy!',
welcomeSignOffTitleManageTeam: 'Gdy ukończysz powyższe zadania, będziemy mogli poznać więcej funkcji, takich jak przepływy akceptacji i reguły!',
welcomeSignOffTitle: 'Miło cię poznać!',
explanationModal: {
title: 'Witamy w Expensify',
description: 'Jedna aplikacja do obsługi firmowych i prywatnych wydatków w tempie czatu. Wypróbuj ją i daj nam znać, co o niej myślisz. To dopiero początek!',
secondaryDescription: 'Aby wrócić do Expensify Classic, po prostu stuknij swoje zdjęcie profilowe > Przejdź do Expensify Classic.',
},
getStarted: 'Rozpocznij',
whatsYourName: 'Jak masz na imię?',
peopleYouMayKnow: 'Sprawdź, czy twój zespół jest w Expensify',
Expand Down
5 changes: 0 additions & 5 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3027,11 +3027,6 @@ ${amount} para ${merchant} - ${date}`,
welcome: 'Bem-vindo!',
welcomeSignOffTitleManageTeam: 'Quando você concluir as tarefas acima, poderemos explorar mais funcionalidades, como fluxos de aprovação e regras!',
welcomeSignOffTitle: 'É ótimo conhecer você!',
explanationModal: {
title: 'Bem-vindo ao Expensify',
description: 'Um só app para gerenciar seus gastos empresariais e pessoais na velocidade de um chat. Experimente e conte para a gente o que achou. Muito mais vindo por aí!',
secondaryDescription: 'Para voltar para o Expensify Classic, basta tocar na sua foto de perfil > Ir para Expensify Classic.',
},
getStarted: 'Começar',
whatsYourName: 'Qual é o seu nome?',
peopleYouMayKnow: 'Veja se sua equipe está no Expensify',
Expand Down
5 changes: 0 additions & 5 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2950,11 +2950,6 @@ ${amount},商户:${merchant} - 日期:${date}`,
welcome: '欢迎!',
welcomeSignOffTitleManageTeam: '完成以上任务后,我们就可以探索更多功能,比如审批流程和规则!',
welcomeSignOffTitle: '很高兴见到你!',
explanationModal: {
title: '欢迎使用 Expensify',
description: '一款应用,以聊天的速度处理您的商务和个人支出。试试看,并告诉我们您的想法。更多精彩功能即将上线!',
secondaryDescription: '要切换回 Expensify Classic,只需点按您的头像 > 前往 Expensify Classic。',
},
getStarted: '开始使用',
whatsYourName: '你叫什么名字?',
peopleYouMayKnow: '查看你的团队是否已在 Expensify 中',
Expand Down
6 changes: 0 additions & 6 deletions src/libs/Navigation/AppNavigator/AuthScreens.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ import DelegatorConnectGuard from './DelegatorConnectGate';
import hideKeyboardOnSwipe from './hideKeyboardOnSwipe';
import KeyboardShortcutsHandler from './KeyboardShortcutsHandler';
import {ShareModalStackNavigator} from './ModalStackNavigators';
import ExplanationModalNavigator from './Navigators/ExplanationModalNavigator';
import FeatureTrainingModalNavigator from './Navigators/FeatureTrainingModalNavigator';
import MigratedUserWelcomeModalNavigator from './Navigators/MigratedUserWelcomeModalNavigator';
import MultifactorAuthenticationModalNavigator from './Navigators/MultifactorAuthenticationModalNavigator';
Expand Down Expand Up @@ -302,11 +301,6 @@ function AuthScreens() {
component={ShareModalStackNavigator}
listeners={modalScreenListeners}
/>
<RootStack.Screen
name={NAVIGATORS.EXPLANATION_MODAL_NAVIGATOR}
options={rootNavigatorScreenOptions.basicModalNavigator}
component={ExplanationModalNavigator}
/>
<RootStack.Screen
name={NAVIGATORS.MIGRATED_USER_MODAL_NAVIGATOR}
options={rootNavigatorScreenOptions.basicModalNavigator}
Expand Down

This file was deleted.

6 changes: 3 additions & 3 deletions src/libs/Navigation/guards/OnboardingGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ const OnboardingGuard: NavigationGuard = {
const isOnboardingCompleted = hasCompletedGuidedSetupFlowSelector(onboarding) ?? false;
const isMigratedUser = tryNewDot?.hasBeenAddedToNudgeMigration ?? false;
const isSingleEntry = hybridApp?.isSingleNewDotEntry ?? false;
const needsExplanationModal = (CONFIG.IS_HYBRID_APP && tryNewDot?.isHybridAppOnboardingCompleted !== true) ?? false;
const isFirstTimeHybridAppTransition = (CONFIG.IS_HYBRID_APP && tryNewDot?.isHybridAppOnboardingCompleted !== true) ?? false;
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
const isInvitedOrGroupMember = (hasNonPersonalPolicy || wasInvitedToNewDot) ?? false;

Expand All @@ -192,7 +192,7 @@ const OnboardingGuard: NavigationGuard = {
isMigratedUser ||
isInvitedOrGroupMember ||
isSingleEntry ||
needsExplanationModal ||
isFirstTimeHybridAppTransition ||
isNavigatingWithReplace;

if (shouldSkipOnboarding) {
Expand All @@ -218,7 +218,7 @@ const OnboardingGuard: NavigationGuard = {
isOnboardingCompleted,
isMigratedUser,
isSingleEntry,
needsExplanationModal,
isFirstTimeHybridAppTransition,
isInvitedOrGroupMember,
isNavigatingWithReplace,
});
Expand Down
9 changes: 0 additions & 9 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,6 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
[SCREENS.DYNAMIC_CHANGE_POLICY_EDUCATIONAL_ROOT]: DYNAMIC_ROUTES.CHANGE_POLICY_EDUCATIONAL.path,
},
},
[NAVIGATORS.EXPLANATION_MODAL_NAVIGATOR]: {
screens: {
[SCREENS.EXPLANATION_MODAL.ROOT]: {
path: ROUTES.EXPLANATION_MODAL_ROOT,
exact: true,
},
},
},

[NAVIGATORS.MIGRATED_USER_MODAL_NAVIGATOR]: {
screens: {
[SCREENS.MIGRATED_USER_WELCOME_MODAL.ROOT]: {
Expand Down
6 changes: 0 additions & 6 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2920,10 +2920,6 @@ type OnboardingModalNavigatorParamList = {
};
};

type ExplanationModalNavigatorParamList = {
[SCREENS.EXPLANATION_MODAL.ROOT]: undefined;
};

type MigratedUserModalNavigatorParamList = {
[SCREENS.MIGRATED_USER_WELCOME_MODAL.ROOT]: undefined;
};
Expand Down Expand Up @@ -3101,7 +3097,6 @@ type AuthScreensParamList = SharedScreensParamList &
[NAVIGATORS.RIGHT_MODAL_NAVIGATOR]: NavigatorScreenParams<RightModalNavigatorParamList>;
[NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR]: NavigatorScreenParams<OnboardingModalNavigatorParamList>;
[NAVIGATORS.FEATURE_TRAINING_MODAL_NAVIGATOR]: NavigatorScreenParams<FeatureTrainingNavigatorParamList>;
[NAVIGATORS.EXPLANATION_MODAL_NAVIGATOR]: NavigatorScreenParams<ExplanationModalNavigatorParamList>;
[NAVIGATORS.MIGRATED_USER_MODAL_NAVIGATOR]: NavigatorScreenParams<MigratedUserModalNavigatorParamList>;
[NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR]: NavigatorScreenParams<TestDriveModalNavigatorParamList>;
[NAVIGATORS.TEST_DRIVE_DEMO_NAVIGATOR]: NavigatorScreenParams<TestDriveDemoNavigatorParamList>;
Expand Down Expand Up @@ -3327,7 +3322,6 @@ export type {
EditRequestNavigatorParamList,
EnablePaymentsNavigatorParamList,
TabNavigatorParamList,
ExplanationModalNavigatorParamList,
FeatureTrainingNavigatorParamList,
FlagCommentNavigatorParamList,
FullScreenName,
Expand Down
2 changes: 1 addition & 1 deletion src/libs/actions/Welcome/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ function completeHybridAppOnboarding() {
return;
}

// No matter what the response is, we want to mark the onboarding as completed (user saw the explanation modal)
// No matter what the response is, we want to mark the onboarding as completed.
Log.info(`[HybridApp] Onboarding status has changed. Propagating new value to OldDot`, true);
HybridAppModule.completeOnboarding({status: true});
});
Expand Down
Loading
Loading