LearnNewsExamplesServices
Frontmatter
id9183
titleEnforce hideMode: ''visibility'' for Component Grid Columns
stateClosed
labels
bugaiarchitecture
assigneestobiu
createdAtFeb 16, 2026, 12:39 PM
updatedAtFeb 16, 2026, 12:46 PM
githubUrlhttps://github.com/neomjs/neo/issues/9183
authortobiu
commentsCount0
parentIssue9106
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 16, 2026, 12:46 PM

Enforce hideMode: 'visibility' for Component Grid Columns

Closed v12.0.0 bugaiarchitecture
tobiu
tobiu commented on Feb 16, 2026, 12:39 PM

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:

  1. ID Instability: Reordering columns changes the mapping of dataFields to indices.
  2. Restoration Failure: SortZone restores content to the old ID (e.g., __cell-5), but the grid renders the column at a new ID (e.g., __cell-3).
  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:

  1. Stable IDs: Cells use __dataField IDs, which persist across reorders.
  2. Zero DOM Thrashing: Cells are toggled via visibility, avoiding insert/remove operations, aligning with the Grid's "Fixed-DOM-Order" strategy.
  3. Drag Stability: SortZone can correctly restore content to the stable ID.

This will implicitly fix issues with GitHubOrgs, Heuristics, and other component columns.

tobiu added the bug label on Feb 16, 2026, 12:39 PM
tobiu added the ai label on Feb 16, 2026, 12:39 PM
tobiu added the architecture label on Feb 16, 2026, 12:39 PM
tobiu added parent issue #9106 on Feb 16, 2026, 12:39 PM
tobiu assigned to @tobiu on Feb 16, 2026, 12:42 PM
tobiu referenced in commit d9d46e5 - "fix(grid): Enforce hideMode: 'visibility' for Component Columns (#9183)" on Feb 16, 2026, 12:45 PM
tobiu closed this issue on Feb 16, 2026, 12:46 PM