Skip to content

feat(pass): allow copying multiple login fields at once - #529

Open
PAX-1-2 wants to merge 1 commit into
ProtonMail:mainfrom
PAX-1-2:feat/pass-multi-copy-fields
Open

feat(pass): allow copying multiple login fields at once#529
PAX-1-2 wants to merge 1 commit into
ProtonMail:mainfrom
PAX-1-2:feat/pass-multi-copy-fields

Conversation

@PAX-1-2

@PAX-1-2 PAX-1-2 commented Aug 16, 2026

Copy link
Copy Markdown

Description

Copying several fields of a login item currently requires copying them one by one. This adds a multi-copy mode to the login item detail view:

  • A "Select fields to copy" toggle in a small toolbar above the item fields.
  • While enabled, every copyable field (email, username, password, TOTP token, each website, note and custom fields) shows a checkbox in place of its icon, and per-field click-to-copy is temporarily disabled to avoid accidental copies.
  • A separator checkbox controls the output format: Label: value entries joined either by ", " (comma and space) or by line breaks.
  • Select all / deselect all, and a copy action that reuses the existing copyToClipboard flow (respects the clipboard TTL setting and notifications).

Example output: Email: user@example.com, Username: john or the same with one field per line.

Implementation notes

  • New MultiCopy.tsx in packages/pass/components/Item/MultiCopy/ exporting the useMultiCopy hook, the selection checkbox and the toolbar.
  • Login.content.tsx builds the list of selectable fields and swaps the field icon for the selection checkbox while the mode is enabled.
  • ExtraFieldsControl gained two backwards-compatible optional props (copyable, renderIcon); OTPValueControl/UpgradeControl accept a ReactElement icon.
  • TOTP tokens are resolved lazily at copy time via core.generateOTP, so no extra OTP subscriptions are introduced.
  • Translations for the new strings can be provided through Crowdin.

Testing

  • Built and manually tested the Firefox extension (temporary add-on load).
  • prettier --check, eslint and tsgo (check-types) pass on the changed files.

Add a multi-copy mode to the login item detail view: a toolbar lets the
user enable field selection, pick fields through checkboxes (email,
username, password, TOTP token, websites, note and custom fields) and
copy them together as "Label: value" entries, separated either by
comma and space or by line breaks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant