Skip to content

Commit fd0eabf

Browse files
authored
Merge pull request Expensify#70828 from ShridharGoel/travelEnablement
2 parents 9f63dbc + 7c17133 commit fd0eabf

19 files changed

Lines changed: 188 additions & 63 deletions

File tree

src/CONST/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7213,6 +7213,7 @@ const CONST = {
72137213
DEFAULT_DOMAIN: 'domain',
72147214
PROVISIONING: {
72157215
ERROR_PERMISSION_DENIED: 'permissionDenied',
7216+
ERROR_ADDITIONAL_VERIFICATION_REQUIRED: 'additionalVerificationRequired',
72167217
},
72177218
UPDATE_OPERATION_TYPE: {
72187219
BOOKING_TICKETED: 'BOOKING_TICKETED',

src/components/BookTravelButton.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import usePermissions from '@hooks/usePermissions';
1010
import usePolicy from '@hooks/usePolicy';
1111
import useStyleUtils from '@hooks/useStyleUtils';
1212
import useThemeStyles from '@hooks/useThemeStyles';
13-
import {cleanupTravelProvisioningSession, requestTravelAccess} from '@libs/actions/Travel';
13+
import {cleanupTravelProvisioningSession, requestTravelAccess, setTravelProvisioningNextStep} from '@libs/actions/Travel';
1414
import Navigation from '@libs/Navigation/Navigation';
1515
import {openTravelDotLink} from '@libs/openTravelDotLink';
1616
import {getActivePolicies, getAdminsPrivateEmailDomains, isPaidGroupPolicy} from '@libs/PolicyUtils';
@@ -128,6 +128,14 @@ function BookTravelButton({text, shouldRenderErrorMessageBelowButton = false, se
128128
// - Public domains are not allowed; an error page is shown in that case.
129129
else if (adminDomains.length === 1) {
130130
const domain = adminDomains.at(0) ?? CONST.TRAVEL.DEFAULT_DOMAIN;
131+
// Always validate OTP first before proceeding to address details or terms acceptance
132+
if (!isUserValidated) {
133+
// Determine where to redirect after OTP validation
134+
const nextStep = isEmptyObject(policy?.address) ? ROUTES.TRAVEL_WORKSPACE_ADDRESS.getRoute(domain, Navigation.getActiveRoute()) : ROUTES.TRAVEL_TCS.getRoute(domain);
135+
setTravelProvisioningNextStep(nextStep);
136+
Navigation.navigate(ROUTES.TRAVEL_VERIFY_ACCOUNT.getRoute(domain));
137+
return;
138+
}
131139
if (isEmptyObject(policy?.address)) {
132140
// Spotnana requires an address anytime an entity is created for a policy
133141
Navigation.navigate(ROUTES.TRAVEL_WORKSPACE_ADDRESS.getRoute(domain, Navigation.getActiveRoute()));

src/languages/de.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3482,6 +3482,8 @@ ${amount} für ${merchant} - ${date}`,
34823482
verifyCompany: {
34833483
title: 'Beginnen Sie noch heute mit dem Reisen!',
34843484
message: `Bitte kontaktieren Sie Ihren Account Manager oder salesteam@expensify.com, um eine Demo von Travel zu erhalten und es für Ihr Unternehmen zu aktivieren.`,
3485+
confirmText: 'Verstanden',
3486+
conciergeMessage: ({domain}: {domain: string}) => `Reiseaktivierung für die Domain: ${domain} fehlgeschlagen. Bitte überprüfen und aktivieren Sie Reisen für diese Domain.`,
34853487
},
34863488
updates: {
34873489
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/en.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,6 +3459,8 @@ const translations = {
34593459
verifyCompany: {
34603460
title: "We're reviewing your request...",
34613461
message: `We're running a few checks on our end to verify your account is ready for Expensify Travel. We'll be in touch shortly!`,
3462+
confirmText: 'Got it',
3463+
conciergeMessage: ({domain}: {domain: string}) => `Travel enablement failed for domain: ${domain}. Please review and enable travel for this domain.`,
34623464
},
34633465
updates: {
34643466
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/es.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3457,6 +3457,8 @@ ${amount} para ${merchant} - ${date}`,
34573457
verifyCompany: {
34583458
title: 'Estamos revisando tu solicitud...',
34593459
message: `Estamos realizando algunas comprobaciones para verificar que tu cuenta esté lista para Expensify Travel. ¡Nos pondremos en contacto contigo en breve!`,
3460+
confirmText: 'Entendido',
3461+
conciergeMessage: ({domain}: {domain: string}) => `Hubo un error habilitando viajes para el dominio: ${domain}. Por favor, revisa y habilita los viajes para este dominio.`,
34603462
},
34613463
updates: {
34623464
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/fr.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3482,6 +3482,8 @@ ${amount} pour ${merchant} - ${date}`,
34823482
verifyCompany: {
34833483
title: "Commencez votre voyage dès aujourd'hui !",
34843484
message: `Veuillez contacter votre gestionnaire de compte ou salesteam@expensify.com pour obtenir une démonstration de voyage et l'activer pour votre entreprise.`,
3485+
confirmText: 'Compris',
3486+
conciergeMessage: ({domain}: {domain: string}) => `L'activation du voyage a échoué pour le domaine : ${domain}. Veuillez vérifier et activer le voyage pour ce domaine.`,
34853487
},
34863488
updates: {
34873489
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/it.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3492,6 +3492,8 @@ ${amount} per ${merchant} - ${date}`,
34923492
verifyCompany: {
34933493
title: 'Inizia a viaggiare oggi stesso!',
34943494
message: `Si prega di contattare il proprio Account Manager o salesteam@expensify.com per ottenere una demo di viaggio e attivarla per la vostra azienda.`,
3495+
confirmText: 'Got it',
3496+
conciergeMessage: ({domain}: {domain: string}) => `Abilitazione del viaggio fallita per il dominio: ${domain}. Si prega di rivedere e abilitare il viaggio per questo dominio.`,
34953497
},
34963498
updates: {
34973499
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/ja.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3473,6 +3473,8 @@ ${date} - ${merchant}に${amount}`,
34733473
verifyCompany: {
34743474
title: '今日から旅行を始めましょう!',
34753475
message: `旅行のデモを取得し、御社向けに有効化するには、アカウントマネージャーまたはsalesteam@expensify.comにご連絡ください。`,
3476+
confirmText: '了解しました。',
3477+
conciergeMessage: ({domain}: {domain: string}) => `ドメイン: ${domain} のトラベル有効化に失敗しました。このドメインのトラベルを確認して有効にしてください。`,
34763478
},
34773479
updates: {
34783480
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/nl.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3492,6 +3492,8 @@ ${amount} voor ${merchant} - ${date}`,
34923492
verifyCompany: {
34933493
title: 'Begin vandaag nog met reizen!',
34943494
message: `Neem contact op met uw accountmanager of salesteam@expensify.com om een demo van reizen te krijgen en het voor uw bedrijf in te schakelen.`,
3495+
confirmText: 'Begrepen',
3496+
conciergeMessage: ({domain}: {domain: string}) => `Reismogelijkheid mislukt voor domein: ${domain}. Controleer en schakel reizen in voor dit domein.`,
34953497
},
34963498
updates: {
34973499
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

src/languages/pl.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3485,6 +3485,8 @@ ${amount} dla ${merchant} - ${date}`,
34853485
verifyCompany: {
34863486
title: 'Rozpocznij podróż już dziś!',
34873487
message: `Proszę skontaktować się z menedżerem konta lub salesteam@expensify.com, aby uzyskać demonstrację podróży i włączyć ją dla swojej firmy.`,
3488+
confirmText: 'Zrozumiałem',
3489+
conciergeMessage: ({domain}: {domain: string}) => `Włączenie podróży nie powiodło się dla domeny: ${domain}. Proszę przejrzeć i włączyć podróże dla tej domeny.`,
34883490
},
34893491
updates: {
34903492
bookingTicketed: ({airlineCode, origin, destination, startDate, confirmationID = ''}: FlightParams) =>

0 commit comments

Comments
 (0)