Undo-redo: Squash history a bit less
Nobody has claimed this yet.
- Dominant language
- Elixir
- Stars
- 296
- Forks
- 86
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 50
Description
When undoing in the workflow diagram, some edits will be squashed together into a single state. For example, if editing a step name, rather than creating an undo state for each keystroke, we "squash" all consecutive edits into a single undo.
This is fine but there are cases where it's annoying, or doesn't work that well.
I think we need to add a couple of extra rules, like:
- If the user doesn't hit a key for, say, 30 seconds, then starts typing again, we should create two history states. So debounce the squashing so that a pause creates a new state
- If the user changes focus into a different field, we should "commit" the history state and force a new one on the next edit (this was a nice idea from @doc-han ). Actually it's simpler: reset the squash on field blur. This also means that closing the dialog will reset the squash, so if you open the dialog twice and make two edits to the same field, you'll get two undo steps.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Start by locating the workflow diagram's undo/redo history logic and any tests covering edit squashing. Check how consecutive field edits are grouped, then verify that a long pause or field blur creates a separate history state and that repeated dialog edits produce separate undo steps.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100