Skip to content

Commit ec523a1

Browse files
authored
Merge pull request Expensify#88005 from ShridharGoel/gusto1.4
[No QA] Add Gusto HR page setup
2 parents 607f86c + 25102e7 commit ec523a1

26 files changed

Lines changed: 282 additions & 5 deletions

src/CONST/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8376,6 +8376,14 @@ const CONST = {
83768376
description: 'workspace.upgrade.perDiem.description' as const,
83778377
icon: 'PerDiem',
83788378
},
8379+
hr: {
8380+
id: 'hr' as const,
8381+
alias: 'hr',
8382+
name: 'HR',
8383+
title: 'workspace.upgrade.hr.title' as const,
8384+
description: 'workspace.upgrade.hr.description' as const,
8385+
icon: 'Members',
8386+
},
83798387
travel: {
83808388
id: 'travel' as const,
83818389
alias: 'travel',

src/ROUTES.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2364,6 +2364,15 @@ const ROUTES = {
23642364
return `workspaces/${policyID}/more-features` as const;
23652365
},
23662366
},
2367+
WORKSPACE_HR: {
2368+
route: 'workspaces/:policyID/hr',
2369+
getRoute: (policyID: string | undefined) => {
2370+
if (!policyID) {
2371+
Log.warn('Invalid policyID is used to build the WORKSPACE_HR route');
2372+
}
2373+
return `workspaces/${policyID}/hr` as const;
2374+
},
2375+
},
23672376
WORKSPACE_TAGS: {
23682377
route: 'workspaces/:policyID/tags',
23692378
getRoute: (policyID: string | undefined) => {

src/SCREENS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,7 @@ const SCREENS = {
660660
},
661661
INITIAL: 'Workspace_Initial',
662662
PROFILE: 'Workspace_Overview',
663+
HR: 'Workspace_HR',
663664
COMPANY_CARDS: 'Workspace_CompanyCards',
664665
COMPANY_CARDS_BROKEN_CARD_FEED_CONNECTION: 'Workspace_CompanyCards_BrokenCardFeedConnection',
665666
COMPANY_CARDS_REFRESH_CARD_FEED_CONNECTION: 'Workspace_CompanyCards_RefreshCardFeedConnection',

src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const WIDE_LAYOUT_INACTIVE_SCREENS: string[] = [
2323
SCREENS.WORKSPACE.WORKFLOWS,
2424
SCREENS.WORKSPACE.INVOICES,
2525
SCREENS.WORKSPACE.MEMBERS,
26+
SCREENS.WORKSPACE.HR,
2627
SCREENS.WORKSPACE.CATEGORIES,
2728
SCREENS.WORKSPACE.MORE_FEATURES,
2829
SCREENS.WORKSPACE.TAGS,

src/languages/de.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6647,6 +6647,13 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und
66476647
upgradeWorkspaceWarningForRestrictedPolicyCreationPrompt:
66486648
'Ihr Unternehmen hat das Erstellen von Arbeitsbereichen eingeschränkt. Bitte wenden Sie sich an eine*n Admin, um Hilfe zu erhalten.',
66496649
},
6650+
hr: {
6651+
title: 'HR-Integrationen',
6652+
description:
6653+
'Verbinden Sie Ihren HR-Anbieter, um Mitarbeitende automatisch zu synchronisieren und Genehmigungsworkflows zu verwalten. Halten Sie Ihr Teamverzeichnis und Ihre Berichtsstruktur ohne manuellen Aufwand auf dem neuesten Stand.',
6654+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
6655+
`<muted-text>HR-Integrationen sind nur im Control-Tarif verfügbar, ab <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `pro Mitglied und Monat.` : `pro aktivem Mitglied und Monat.`}</muted-text>`,
6656+
},
66506657
},
66516658
downgrade: {
66526659
commonFeatures: {

src/languages/en.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6595,6 +6595,13 @@ const translations = {
65956595
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
65966596
`<muted-text>Per diem are only available on the Control plan, starting at <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `per member per month.` : `per active member per month.`}</muted-text>`,
65976597
},
6598+
hr: {
6599+
title: 'HR integrations',
6600+
description:
6601+
'Connect your HR provider to automatically sync employees and manage approval workflows. Keep your team roster and reporting structure up to date without manual work.',
6602+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
6603+
`<muted-text>HR integrations are only available on the Control plan, starting at <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `per member per month.` : `per active member per month.`}</muted-text>`,
6604+
},
65986605
travel: {
65996606
title: 'Travel',
66006607
description: 'Expensify Travel is a new corporate travel booking and management platform that allows members to book accommodations, flights, transportation, and more.',

src/languages/es.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6464,6 +6464,13 @@ ${amount} para ${merchant} - ${date}`,
64646464
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}) =>
64656465
`<muted-text>Las dietas per diem solo están disponibles en el plan Control, a partir de <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `por miembro al mes.` : `por miembro activo al mes.`}</muted-text>`,
64666466
},
6467+
hr: {
6468+
title: 'Integraciones de HR',
6469+
description:
6470+
'Conecta tu proveedor de HR para sincronizar automáticamente empleados y gestionar los flujos de aprobación. Mantén actualizados el equipo y la estructura de informes sin trabajo manual.',
6471+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}) =>
6472+
`<muted-text>Las integraciones de HR solo están disponibles en el plan Control, a partir de <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `por miembro al mes.` : `por miembro activo al mes.`}</muted-text>`,
6473+
},
64676474
travel: {
64686475
title: 'Viajes',
64696476
description:

src/languages/fr.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2620,7 +2620,7 @@ ${amount} pour ${merchant} - ${date}`,
26202620
title: 'Dépenses de',
26212621
memberAlreadyInWorkflowTitle: 'Membre déjà dans un workflow',
26222622
memberAlreadyInWorkflowPrompt: ({memberName, approverName}: {memberName: string; approverName: string}) =>
2623-
`${memberName} fait déjà partie d\u2019un workflow d\u2019approbation qui soumet à ${approverName}. L\u2019ajouter ici le déplacera vers ce workflow.`,
2623+
`${memberName} fait déjà partie d’un workflow d’approbation qui soumet à ${approverName}. L’ajouter ici le déplacera vers ce workflow.`,
26242624
header: 'Quand les membres suivants soumettent des dépenses :',
26252625
},
26262626
workflowsApproverPage: {
@@ -6669,6 +6669,13 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip
66696669
upgradeWorkspaceWarningForRestrictedPolicyCreationPrompt:
66706670
'Votre entreprise a restreint la création d’espaces de travail. Veuillez contacter un administrateur pour obtenir de l’aide.',
66716671
},
6672+
hr: {
6673+
title: 'Intégrations RH',
6674+
description:
6675+
'Connectez votre fournisseur RH pour synchroniser automatiquement les employés et gérer les workflows d’approbation. Maintenez la liste de votre équipe et la structure de reporting à jour sans travail manuel.',
6676+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
6677+
`<muted-text>Les intégrations RH sont uniquement disponibles avec l’offre Control, à partir de <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `par membre et par mois.` : `par membre actif et par mois.`}</muted-text>`,
6678+
},
66726679
},
66736680
downgrade: {
66746681
commonFeatures: {

src/languages/it.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6631,6 +6631,13 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo
66316631
upgradeWorkspaceWarning: `Impossibile eseguire l'upgrade dello spazio di lavoro`,
66326632
upgradeWorkspaceWarningForRestrictedPolicyCreationPrompt: 'La tua azienda ha limitato la creazione degli spazi di lavoro. Contatta un amministratore per assistenza.',
66336633
},
6634+
hr: {
6635+
title: 'Integrazioni HR',
6636+
description:
6637+
'Collega il tuo provider HR per sincronizzare automaticamente i dipendenti e gestire i flussi di approvazione. Mantieni l’organigramma del tuo team e la struttura dei report sempre aggiornati senza lavoro manuale.',
6638+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
6639+
`<muted-text>Le integrazioni HR sono disponibili solo con il piano Control, a partire da <strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `per membro al mese.` : `per membro attivo al mese.`}</muted-text>`,
6640+
},
66346641
},
66356642
downgrade: {
66366643
commonFeatures: {

src/languages/ja.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6559,6 +6559,12 @@ ${reportName}
65596559
upgradeWorkspaceWarning: `ワークスペースをアップグレードできません`,
65606560
upgradeWorkspaceWarningForRestrictedPolicyCreationPrompt: 'あなたの会社ではワークスペースの作成が制限されています。管理者に連絡してサポートを受けてください。',
65616561
},
6562+
hr: {
6563+
title: '人事連携',
6564+
description: '人事システムを連携して、従業員情報を自動で同期し、承認ワークフローを管理できます。チームの名簿とレポートラインを手作業なしで最新の状態に保てます。',
6565+
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
6566+
`<muted-text>人事システム連携は、<strong>${formattedPrice}</strong> ${hasTeam2025Pricing ? `メンバー1人あたり月額` : `アクティブメンバー1人あたり、1か月ごと。`}からのControlプランでのみご利用いただけます</muted-text>`,
6567+
},
65626568
},
65636569
downgrade: {
65646570
commonFeatures: {

0 commit comments

Comments
 (0)