Add a "Copy links" action to each tab group
Maintainers usually reply within 1 day
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
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 linksbutton 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 testpasses.
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
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Tektrix/pinfold
-
good first issue tests
Difficulty 1/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
Add tests for the service worker's restoreTabsMay be free again @Vamsi-2581 claimed this 12 days ago, and no pull request is open. Opengood first issue tests
Difficulty 3/5 1-2 days Newbie friendliness 70/100
Tektrix/pinfold#30 · 2 comments ·
Maintainers usually reply within 1 day
-
Add tests for untested PinfoldStorage write methodsPossibly taken @dharamdan01 claimed this 11 days ago. Opengood first issue tests
Tektrix/pinfold#29 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
eliasstravik/herdr-projects#1032 ·
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
growilabs/growi#12246 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
TMHSDigital/Free-Game-Dev-Assets#301 ·
Maintainers usually reply within 1 day