Skip to content

[Due for payment 2026-06-01] [Due for payment 2026-05-29] [Bulk workspace edits] Three-dot menu entry + Page 1 (Select workspaces) [3] #88669

@francoisl

Description

@francoisl

Task

Add the entry point and the first step of the RHP flow.

Three-dot menu entry (src/pages/workspace/WorkspacesListPage.tsx): add a new item in threeDotsMenuItems, next to "Duplicate Workspace", labeled with translate('workspace.copySettings.title') and a gear icon. Wire its onSelected to Navigation.navigate(ROUTES.POLICY_COPY_SETTINGS.getRoute(item.policyID)). Only show for admins on the policy (existing isAdmin guard). Also add the new translation key in the translation files.

Page 1 (pages/workspace/copyPolicySettings/CopyPolicySettingsSelectWorkspacesPage.tsx): RHP step showing workspaces the current user is admin of. Use SelectionList with MultiSelectListItem.

Eligibility rules:

  • Exclude the source policy
  • Exclude policies where the user is not admin, and personal policies
  • If the source policy type is CORPORATE, only include other CORPORATE policies (Release 1 restriction — removed in Issue 7 as part of R2)

Layout:

  • A <Checkbox> above the list to toggle select-all
  • A <SearchBar> keyword input appears when the list has more than 12 policies
  • "Next" button persists selections via setCopyPolicySettingsData({targetPolicyIDs}) and navigates to Select Features

Relevant design doc sections: "[App] Add 'Copy configuration' to the workspace three-dot menu" and "[App] Page 1 : Select workspaces".

Depends on Issue 1 (routes/screens). Issue 2 is nice to have for the action helpers, but setCopyPolicySettingsData can be stubbed during development.

Issue OwnerCurrent Issue Owner: @dmkt9

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2InternalRequires API changes or must be handled by Expensify staffTask

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions