Skip to content

[Due for payment 2026-05-29] [HR Import] Render per-provider cards on the HR page [F06] #90599

Description

@francoisl

Task

Extend the HR page (built by the Gusto project) to render one MenuItem card per supported HR provider.

Files:

  • src/pages/workspace/hr/WorkspaceHRPage.tsx
  • src/pages/workspace/hr/utils.tsx → rename to utils.ts (it doesn't contain React components)

Behavior:

  • For each connection entry from MERGE_HR_PROVIDERS, render one MenuItem.
  • Each card passes the provider's iconUrl as the icon prop with iconType={CONST.ICON_TYPE_AVATAR} (or ICON_TYPE_WORKSPACE — whichever matches the visual treatment Gusto's card uses today). This is the same path the app already uses for user-avatar menu rows: the URI string renders through <Avatar><Image>.
  • Add a fallback Expensicon (e.g. a generic HR / office icon) for when the icon URL fails to load or is missing — important since we're depending on Merge's CDN at render time.
  • Whether a card is in "connected" vs "disconnected" state is driven by policy.connections[connectionName].
  • Extend getHRCardState() to handle any HR connection name, not just Gusto.
  • Wire the three-dot menu items ("Sync now", "Disconnect") by connection name.

Dependencies: F1, F3, F5.

Issue OwnerCurrent Issue Owner: @bernhardoj

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

DailyKSv2InternalRequires API changes or must be handled by Expensify staff

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions