Add a "Copy links" action to each tab group

Open Beginner friendly
#43 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@Vishnu-vkn is already working on this.

Since Nov 12, 2026.

  • #63 by @Vishnu-vkn — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
84/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript
Domain
frontend

Research direction

Start in dashboard/dashboard.js at the group action row around line 815 and the Restore all handler around line 859; read copyUrlWithFeedback() around line 149 and pluralize() for the existing clipboard and toast patterns. Add the group action and check that it copies each URL on its own line, including for locked groups. Run npm test; done when the clipboard contains all group URLs and the success or failure toast appears.

Written by the indexing model from the issue text.

Description

enhancement good first issue

Problem
Each saved tab has a Copy URL button, but there's no way to copy a whole group's links at once. To share a research group or paste it into notes, you have to copy every tab one by one.

Where to look

  • dashboard/dashboard.js:815: the group's action row (Restore all | Delete all | Lock | Move to…).
  • dashboard/dashboard.js:859: where the Restore all handler is bound. Bind the new one next to it.
  • dashboard/dashboard.js:149, copyUrlWithFeedback(): copies one URL and shows a toast. Reuse its pattern.
  • pluralize() in the same file, for "Copied 3 links" / "Copied 1 link".

Suggested approach

  • Add a Copy links button to the action row, with a | separator like the others.
  • Copy the group's URLs, one per line, with navigator.clipboard.writeText.
  • Show a toast like "Copied 3 links", or "Failed to copy links" if the clipboard call fails.
  • No new permissions are needed.

Done when

  • Clicking Copy links on a group puts every URL in that group on the clipboard, one per line, and shows the toast.
  • It works on locked groups too (copying doesn't change anything).
  • npm test passes.

New to Pinfold? See CONTRIBUTING.md for setup and tests. Please comment here to claim this issue before you start, and wait to be assigned, so two people don't do the same work. Good first issues are meant for newcomers, so please take one at a time.

Dominant language
JavaScript
Stars
1
Forks
2
Avg merge
9h 33m
Merged PRs (30d)
29

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Tektrix/pinfold

All issues in Tektrix/pinfold

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.