Skip to content

[Gusto R1] Build the HR page and Gusto settings pages #87009

@yuwenmemon

Description

@yuwenmemon

Build the new HR page and the two Gusto-specific settings pages (Approval Mode and Final Approver). The HR page shows the Gusto connection card with sync status and settings.

Parent Issues: Expensify/App#85850, Expensify/Expensify#591910
Design Doc Section: Detailed — Build the HR page and the Gusto settings pages

Files to add/update

  • src/pages/workspace/hr/WorkspaceHRPage.tsx — New admin-only page that shows the Gusto card, last sync/error line, and the two push rows.
  • src/pages/workspace/hr/types.ts — New local types and view-model helpers for the HR page.
  • src/pages/workspace/hr/utils.tsx — Helpers for the Gusto card state, labels, and menu items.
  • src/pages/workspace/hr/gusto/GustoApprovalModePage.tsx — New page with Basic / Manager / Custom selection plus the warning modal before save.
  • src/pages/workspace/hr/gusto/GustoFinalApproverPage.tsx — New page that lets the admin choose a workspace member as the final approver.
  • src/languages/en.ts — Add labels, descriptions, modal copy, and empty-state text for the new pages.

Key implementation details

  • Show a Connect button when there is no Gusto connection.
  • After connection, replace that CTA with a three-dot menu containing Sync now and Disconnect.
  • Show the last successful sync timestamp when available. If the last sync failed, show the error message instead.
  • Show Approval Mode and Final Approver as push rows directly on the Gusto card.
  • The approval mode page does not save immediately on selection. The admin picks a mode, taps Save, sees a warning modal, and then confirms. Changing the mode triggers a sync and can reset approval chains.
  • The final approver page should use a workspace-member selector.
Issue OwnerCurrent Issue Owner: @shubham1206agra

Metadata

Metadata

Labels

NewFeatureSomething to build that is a new item.ReviewingHas a PR in reviewWeeklyKSv2

Type

No type
No fields configured for issues without a type.

Projects

Status

CRITICAL

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions