diff --git a/src/ROUTES.ts b/src/ROUTES.ts
index 2da202fba65c7..f2f518a02722d 100644
--- a/src/ROUTES.ts
+++ b/src/ROUTES.ts
@@ -3222,6 +3222,7 @@ const ROUTES = {
getRoute: (backTo?: string) => getUrlWithBackToParam(`workspace/confirmation`, backTo),
},
WORKSPACE_CONFIRMATION_OWNER_SELECTOR: 'workspace/confirmation/owner-selector',
+ WORKSPACE_CONFIRMATION_SUCCESS: 'workspace/confirmation/success',
MIGRATED_USER_WELCOME_MODAL: {
route: 'onboarding/migrated-user-welcome',
diff --git a/src/SCREENS.ts b/src/SCREENS.ts
index 7e3bf21212745..bd2041c980c66 100644
--- a/src/SCREENS.ts
+++ b/src/SCREENS.ts
@@ -514,7 +514,7 @@ const SCREENS = {
ROOT: 'ReportChangeWorkspace_Root',
},
- WORKSPACE_CONFIRMATION: {ROOT: 'Workspace_Confirmation_Root', OWNER_SELECTOR: 'Workspace_Confirmation_Owner_Selector'},
+ WORKSPACE_CONFIRMATION: {ROOT: 'Workspace_Confirmation_Root', OWNER_SELECTOR: 'Workspace_Confirmation_Owner_Selector', SUCCESS: 'Workspace_Confirmation_Success'},
WORKSPACE_DUPLICATE: {ROOT: 'Workspace_Duplicate_Root', SELECT_FEATURES: 'Workspace_Duplicate_Select_Features'},
WORKSPACES_LIST: 'Workspaces_List',
diff --git a/src/languages/de.ts b/src/languages/de.ts
index 804bd94a6a2a0..80ceef504c868 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -4201,6 +4201,10 @@ ${amount} für ${merchant} – ${date}`,
budgetTypeForNotificationMessage: {tag: 'Tag', category: 'Kategorie'},
deepDiveExpensifyCard: `Transaktionen der Expensify Karte werden automatisch in ein „Expensify Karte Verbindlichkeitskonto“ exportiert, das mit unserer Integration erstellt wird.`,
},
+ createdForClient: {
+ title: 'Du hast einen Workspace für deinen Kunden erstellt!',
+ description: 'Großartige Neuigkeiten 🎉. Kontaktiere uns, wenn sie Hilfe bei der Einrichtung benötigen.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) =>
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 177e54d4603f8..52a46e120d21b 100644
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -4271,6 +4271,10 @@ const translations = {
policyExpenseChatName: (displayName: string) => `${displayName}'s expenses`,
deepDiveExpensifyCard: `Expensify Card transactions will automatically export to an "Expensify Card Liability Account" created with our integration.`,
},
+ createdForClient: {
+ title: "You've created a workspace for your client!",
+ description: 'Great news 🎉. Reach out to us if they need any help with the setup.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) => (organizationName ? `Connected to ${organizationName}` : 'Automate travel and meal delivery expenses across your organization.'),
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 08e608ff3c893..d4d4f6bef2a35 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -4134,6 +4134,10 @@ ${amount} para ${merchant} - ${date}`,
policyExpenseChatName: (displayName) => `${displayName}'s gastos`,
deepDiveExpensifyCard: `Las transacciones de la Tarjeta Expensify se exportan automáticamente a una "Cuenta de Responsabilidad de la Tarjeta Expensify" creada con nuestra integración.`,
},
+ createdForClient: {
+ title: '¡Has creado un espacio de trabajo para tu cliente!',
+ description: 'Excelentes noticias 🎉. Contáctanos si necesitan ayuda con la configuración.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName) => (organizationName ? `Conectado a ${organizationName}` : 'Automatice los gastos de viajes y entrega de comidas en toda su organización.'),
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 889ba7bd3327b..82d24a3dc400b 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -4211,6 +4211,10 @@ ${amount} pour ${merchant} - ${date}`,
policyExpenseChatName: (displayName: string) => `Dépenses de ${displayName}`,
deepDiveExpensifyCard: `Les transactions de la Carte Expensify seront automatiquement exportées vers un « compte de passif Carte Expensify » créé avec notre intégration.`,
},
+ createdForClient: {
+ title: 'Vous avez créé un espace de travail pour votre client !',
+ description: "Excellente nouvelle 🎉. Contactez-nous si votre client a besoin d'aide pour la configuration.",
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) =>
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 1dbbdf39e215a..45e7967d3b81d 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -4189,6 +4189,10 @@ ${amount} per ${merchant} - ${date}`,
budgetTypeForNotificationMessage: {tag: 'etichetta', category: 'categoria'},
deepDiveExpensifyCard: `Le transazioni della Carta Expensify verranno esportate automaticamente in un "Conto Passivo Carta Expensify" creato con la nostra integrazione.`,
},
+ createdForClient: {
+ title: 'Hai creato uno spazio di lavoro per il tuo cliente!',
+ description: 'Ottime notizie 🎉. Contattaci se hanno bisogno di aiuto con la configurazione.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) =>
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 15845d5a9c3c2..a2fabc1da25ab 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -4159,6 +4159,10 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
budgetFrequencyUnit: {monthly: '月', yearly: '年'},
budgetTypeForNotificationMessage: {tag: 'タグ', category: 'カテゴリ'},
},
+ createdForClient: {
+ title: 'クライアントのワークスペースを作成しました!',
+ description: '素晴らしいニュースです 🎉。セットアップにサポートが必要な場合はお問い合わせください。',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) => (organizationName ? `${organizationName} に接続しました` : '組織全体の出張費や飲食デリバリー経費を自動化しましょう。'),
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index f021695962964..d00adb9dd5355 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -4187,6 +4187,10 @@ ${amount} voor ${merchant} - ${date}`,
budgetTypeForNotificationMessage: {tag: 'tag', category: 'categorie'},
deepDiveExpensifyCard: `Transacties met de Expensify Kaart worden automatisch geëxporteerd naar een "Expensify Kaart Passivarekening" dat wordt aangemaakt via onze integratie.`,
},
+ createdForClient: {
+ title: 'Je hebt een werkruimte voor je klant aangemaakt!',
+ description: 'Geweldig nieuws 🎉. Neem contact met ons op als ze hulp nodig hebben bij de configuratie.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) => (organizationName ? `Verbonden met ${organizationName}` : 'Automatiseer reis- en maaltijdbezorgingskosten in uw hele organisatie.'),
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 8b04775a09441..30fbbfb244647 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -4179,6 +4179,10 @@ ${amount} dla ${merchant} - ${date}`,
policyExpenseChatName: (displayName: string) => `Wydatki ${displayName}`,
deepDiveExpensifyCard: `Transakcje z Karty Expensify będą automatycznie eksportowane do „Konta zobowiązań Karty Expensify” utworzonego dzięki naszej integracji.`,
},
+ createdForClient: {
+ title: 'Utworzyłeś przestrzeń roboczą dla swojego klienta!',
+ description: 'Świetna wiadomość 🎉. Skontaktuj się z nami, jeśli potrzebują pomocy przy konfiguracji.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) =>
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 9238e47c4625d..e328ccd62c96b 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -4180,6 +4180,10 @@ ${amount} para ${merchant} - ${date}`,
budgetTypeForNotificationMessage: {tag: 'etiqueta', category: 'categoria'},
deepDiveExpensifyCard: `As transações do Cartão Expensify serão exportadas automaticamente para uma “Conta de Responsabilidade do Cartão Expensify” criada com nossa integração.`,
},
+ createdForClient: {
+ title: 'Você criou um espaço de trabalho para seu cliente!',
+ description: 'Ótimas notícias 🎉. Entre em contato conosco se precisarem de ajuda com a configuração.',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) =>
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 34e4c9d2daf3a..b0d1eb6e8b24a 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -4082,6 +4082,10 @@ ${amount},商户:${merchant} - 日期:${date}`,
policyExpenseChatName: (displayName: string) => `${displayName} 的报销费用`,
deepDiveExpensifyCard: `Expensify 卡交易将自动导出到使用我们的集成创建的“Expensify 卡负债账户”。`,
},
+ createdForClient: {
+ title: '您已为客户创建了工作区!',
+ description: '好消息 🎉。如果他们在设置方面需要帮助,请联系我们。',
+ },
receiptPartners: {
uber: {
subtitle: (organizationName: string) => (organizationName ? `已连接到 ${organizationName}` : '在整个组织内自动化管理差旅和外卖餐饮报销。'),
diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
index 0fdf0251f7bf8..8ef7cb5a32628 100644
--- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
+++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
@@ -280,6 +280,7 @@ const ReportSettingsModalStackNavigator = createModalStackNavigator({
[SCREENS.WORKSPACE_CONFIRMATION.ROOT]: () => require('../../../../pages/workspace/WorkspaceConfirmationPage').default,
[SCREENS.WORKSPACE_CONFIRMATION.OWNER_SELECTOR]: () => require('../../../../pages/workspace/WorkspaceConfirmationOwnerSelectorPage').default,
+ [SCREENS.WORKSPACE_CONFIRMATION.SUCCESS]: () => require('../../../../pages/workspace/WorkspaceConfirmationSuccessPage').default,
[SCREENS.CURRENCY.SELECTION]: () => require('../../../../pages/CurrencySelectionPage').default,
});
diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts
index f7842ce2442fb..da57b976acf1c 100644
--- a/src/libs/Navigation/linkingConfig/config.ts
+++ b/src/libs/Navigation/linkingConfig/config.ts
@@ -1595,6 +1595,7 @@ const config: LinkingOptions['config'] = {
screens: {
[SCREENS.WORKSPACE_CONFIRMATION.ROOT]: ROUTES.WORKSPACE_CONFIRMATION.route,
[SCREENS.WORKSPACE_CONFIRMATION.OWNER_SELECTOR]: ROUTES.WORKSPACE_CONFIRMATION_OWNER_SELECTOR,
+ [SCREENS.WORKSPACE_CONFIRMATION.SUCCESS]: ROUTES.WORKSPACE_CONFIRMATION_SUCCESS,
[SCREENS.CURRENCY.SELECTION]: ROUTES.CURRENCY_SELECTION.route,
},
},
diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts
index 6053b255c2b57..e349a37528986 100644
--- a/src/libs/Navigation/types.ts
+++ b/src/libs/Navigation/types.ts
@@ -2180,6 +2180,7 @@ type WorkspaceConfirmationNavigatorParamList = {
backTo?: Routes;
};
[SCREENS.WORKSPACE_CONFIRMATION.OWNER_SELECTOR]: undefined;
+ [SCREENS.WORKSPACE_CONFIRMATION.SUCCESS]: undefined;
[SCREENS.CURRENCY.SELECTION]: {
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
backTo?: Routes;
diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts
index db13afeb333e3..7b096ffa4b747 100644
--- a/src/libs/actions/Policy/Policy.ts
+++ b/src/libs/actions/Policy/Policy.ts
@@ -2341,7 +2341,7 @@ function createDraftInitialWorkspace(
id: policyID,
type: type || CONST.POLICY.TYPE.TEAM,
name: workspaceName,
- role: CONST.POLICY.ROLE.ADMIN,
+ role: makeMeAdmin || !policyOwnerEmail || policyOwnerEmail === deprecatedSessionEmail ? CONST.POLICY.ROLE.ADMIN : undefined,
owner: deprecatedSessionEmail,
ownerAccountID: deprecatedSessionAccountID,
isPolicyExpenseChatEnabled: true,
@@ -2503,7 +2503,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData {
const policyID = params.policyID || generatePolicyID();
- const routeToNavigate = isSmallScreenWidth ? ROUTES.WORKSPACE_INITIAL.getRoute(policyID) : ROUTES.WORKSPACE_OVERVIEW.getRoute(policyID);
+ const isDifferentOwner = !!params.owner && params.owner !== (currentUserPersonalDetails.email ?? '');
+ const shouldShowSuccessPage = isDifferentOwner && !params.makeMeAdmin;
+ const workspaceRoute = isSmallScreenWidth ? ROUTES.WORKSPACE_INITIAL.getRoute(policyID) : ROUTES.WORKSPACE_OVERVIEW.getRoute(policyID);
+ const routeToNavigate = shouldShowSuccessPage ? ROUTES.WORKSPACE_CONFIRMATION_SUCCESS : workspaceRoute;
createWorkspaceWithPolicyDraftAndNavigateToIt({
introSelected,
policyOwnerEmail: params.owner,
diff --git a/src/pages/workspace/WorkspaceConfirmationSuccessPage.tsx b/src/pages/workspace/WorkspaceConfirmationSuccessPage.tsx
new file mode 100644
index 0000000000000..5d24cf0597c93
--- /dev/null
+++ b/src/pages/workspace/WorkspaceConfirmationSuccessPage.tsx
@@ -0,0 +1,39 @@
+import React, {useCallback} from 'react';
+import ConfirmationPage from '@components/ConfirmationPage';
+import HeaderWithBackButton from '@components/HeaderWithBackButton';
+import ScreenWrapper from '@components/ScreenWrapper';
+import useLocalize from '@hooks/useLocalize';
+import useThemeStyles from '@hooks/useThemeStyles';
+import Navigation from '@libs/Navigation/Navigation';
+
+function WorkspaceConfirmationSuccessPage() {
+ const styles = useThemeStyles();
+ const {translate} = useLocalize();
+ const closePage = useCallback(() => {
+ Navigation.closeRHPFlow();
+ }, []);
+
+ return (
+
+
+
+
+ );
+}
+
+WorkspaceConfirmationSuccessPage.displayName = 'WorkspaceConfirmationSuccessPage';
+
+export default WorkspaceConfirmationSuccessPage;