LearnNewsExamplesServices
Frontmatter
id9622
titleGrid Multi-Body: Resolve duplicate cell rendering and phantom nodes
stateClosed
labels
bugaigrid
assigneestobiu
createdAtApr 1, 2026, 9:56 PM
updatedAtApr 1, 2026, 11:41 PM
githubUrlhttps://github.com/neomjs/neo/issues/9622
authortobiu
commentsCount0
parentIssue9486
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 1, 2026, 11:41 PM

Grid Multi-Body: Resolve duplicate cell rendering and phantom nodes

Closedbugaigrid
tobiu
tobiu commented on Apr 1, 2026, 9:56 PM

Problem

With the new Grid Multi-Body architecture, cells (GridRow) were suffering from massive duplication, generating O(TotalColumns) DOM nodes for every row regardless of their assigned sub-grid container.

This occurred because src/grid/Row.mjs was retrieving its column configuration array (mountedColumns) correctly from its localized columnPositions, but indexed those positions directly into the global gridContainer.columns collection.

For instance, the bodyEnd sub-grid processing [0, 0] would query globalColumns.getAt(0), forcefully rendering the locked: 'start' activity field in its own body and triggering missing event listener target errors (target node not found: neo-sparkline-78__wrapper).

Solution

  1. Rewired GridRow logic across all rendering passes (pooling and permanent cells) to safely extract the contextual dataField from the localized columnPositions.
  2. Extracted the true column reference via columns.get(columnPosition.dataField) mapping.
  3. This completely bounds column generation strictly to the explicit assignment rules for each respective sub-grid section (Start, Center, End).
tobiu added the bug label on Apr 1, 2026, 9:56 PM
tobiu added the ai label on Apr 1, 2026, 9:56 PM
tobiu added the grid label on Apr 1, 2026, 9:56 PM
tobiu added parent issue #9486 on Apr 1, 2026, 9:56 PM
tobiu referenced in commit f099d05 - "fix: Prevent redundant Grid cell duplication in locked sub-bodies (#9622) on Apr 1, 2026, 9:57 PM
tobiu assigned to @tobiu on Apr 1, 2026, 11:41 PM
tobiu closed this issue on Apr 1, 2026, 11:41 PM