Details
-
Improvement
-
Resolution: Unresolved
-
Major
-
17.10.0
-
None
-
Unknown
-
Description
Each Live Data cell decides whether it can be edited by calling the edit bus's isEditable(), which iterates over the edit state of every cell. All cells therefore depend on the whole edit state: when one cell starts or stops being edited, every cell and its tooltip re-render, twice per edit. Each cell also registers an edit bus listener that walks the edit states again on every event.
Proposal
- Keep a single reactive "a cell is being edited" flag in EditBusService, updated on the start, cancel and save events, and read by isEditable().
- Remove the per-cell edit bus listeners, which become useless.
This also removes the listener leak on master (see the related issue).
Attachments
Issue Links
- relates to
-
XWIKI-25696 Live Data cells leak an edit bus listener each time they are displayed
-
- Open
-