iodide-project / iodide-project/iodide
[Feature Request] Give user choice to view forked copy or fork again
- Dominant language
- JavaScript
- Stars
- 1.5k
- Forks
- 145
- PR merge metrics
- No merged PRs in 30d
Description
As a user I would like to know that a notebook I'm interested to copy/fork has already already been copied/forked by me.
### What I Did
Viewed a notebook, forked and edited it only to later realize that I had already forked it before.
### What I Expected
If I had done some modifications on the first copy in some cases I would rather continue my work there than starting over. I would like to have a choice to either continue work on the existing fork or fork a new one.
As per discussion in PR #2550, it might be a good idea to roughly follow GitHub's forking behavior:

> In our case we would probably either offer to open up existing fork(s) in a new tab or allow the user to fork again. You could probably do this with a modal element. A bit complicated but might be a fun project!
So this is the behavior that I propose:
When a user *who has already forked this notebook* clicks on the "Make a copy to your account" link, open a modal instead of immediately forking the notebook.
The modal will display:
1. A list of forked copies of the notebook that user can click to open the notebook in a new tab
2. A button to allow the user fork another copy of the notebook
3. A button at top right to close the modal
If the user has not forked the notebook previously, then the current behavior should be used (immediately copy the notebook).
### What Happened
Now I have two copies of the same notebook with different changes.

### (if applicable) notebook that reproduces bug
Applicable to any notebook that you have already forked.
Contributor guide
Research direction
Start by tracing the "Make a copy to your account" link and the existing notebook fork flow; the issue does not name specific files or tests. Compare the behavior proposed here with the discussion in PR #2550. Done means previously forked notebooks open a modal listing existing copies, with options to open one, fork again, or close, while first-time forks retain the current behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100