OpenFn / OpenFn/lightning

Undo-redo: Squash history a bit less

Open
#3,377 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature enhancement
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

  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.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.