-
-
Notifications
You must be signed in to change notification settings - Fork 202
Enforce hideMode: 'visibility' for Component Grid Columns #9183
Copy link
Copy link
Closed
Labels
aiarchitectureArchitecture related issuesArchitecture related issuesbugSomething isn't workingSomething isn't working
Description
Component-based grid columns currently default to hideMode: 'removeDom' (inherited from Neo.grid.column.Base).
This enables cell pooling, which uses index-based IDs (e.g., __cell-0).
However, this breaks SortZone's "surgical DOM move" logic during drag-and-drop:
- ID Instability: Reordering columns changes the mapping of dataFields to indices.
- Restoration Failure:
SortZonerestores content to the old ID (e.g.,__cell-5), but the grid renders the column at a new ID (e.g.,__cell-3). - State Loss: This causes the VDOM engine to "replace" rather than "move" components, destroying internal state (Canvas, etc.) or leaving cells empty ("pruned").
The Fix:
Update Neo.grid.column.Component to default to hideMode: 'visibility'.
This ensures:
- Stable IDs: Cells use
__dataFieldIDs, which persist across reorders. - Zero DOM Thrashing: Cells are toggled via visibility, avoiding insert/remove operations, aligning with the Grid's "Fixed-DOM-Order" strategy.
- Drag Stability:
SortZonecan correctly restore content to the stable ID.
This will implicitly fix issues with GitHubOrgs, Heuristics, and other component columns.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
aiarchitectureArchitecture related issuesArchitecture related issuesbugSomething isn't workingSomething isn't working