Persist circuit cell edits
This commit is contained in:
@@ -11,7 +11,10 @@ Inline cells are static text by default. A cell enters edit mode by:
|
||||
|
||||
`Enter` confirms changes. `Escape` cancels current edit draft. `Tab` and `Shift+Tab` confirm and move to next/previous editable cell.
|
||||
|
||||
Committed cell edits are persisted as partial database updates. Fields that were not part of the edit are not written back from an older read and therefore cannot overwrite a concurrent change to another field.
|
||||
Committed cells on existing circuits and device rows are persisted as typed
|
||||
project commands with an optimistic project revision. Only the edited fields
|
||||
are included, so an older tree response cannot write unrelated fields back.
|
||||
The server records the inverse in the same transaction.
|
||||
|
||||
## `selectedCell` vs `editingCell`
|
||||
|
||||
@@ -119,7 +122,11 @@ Cross-section device moves show confirmation-required feedback before drop. The
|
||||
|
||||
## Undo/Redo
|
||||
|
||||
Undo/redo wraps editor operations as command objects with async `redo`/`undo` and reloads tree after each command.
|
||||
Undo/redo wraps editor operations as command objects and reloads the tree after
|
||||
each command. Existing Circuit and device-row cell edits execute persistent
|
||||
project commands; their toolbar undo/redo calls the project-wide server
|
||||
history. Other covered operations still use their existing direct API writes
|
||||
and session-local inverse callbacks during the cutover.
|
||||
|
||||
Covered operations include:
|
||||
|
||||
@@ -132,5 +139,6 @@ Covered operations include:
|
||||
|
||||
Current limitations:
|
||||
|
||||
- session-local only
|
||||
- no persisted history across browser reload
|
||||
- the visible editor stack is still session-local and is empty after reload
|
||||
- structural and destructive editor actions are not all connected to the
|
||||
persistent command boundary yet
|
||||
|
||||
Reference in New Issue
Block a user