LearnNewsExamplesServices
Frontmatter
id8965
titlefeat: Create Neo.grid.Row component (#8964)
stateClosed
labels
enhancementai
assigneestobiu
createdAtFeb 3, 2026, 7:30 PM
updatedAtFeb 3, 2026, 8:21 PM
githubUrlhttps://github.com/neomjs/neo/issues/8965
authortobiu
commentsCount1
parentIssue8964
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 3, 2026, 8:21 PM

feat: Create Neo.grid.Row component (#8964)

Closed v12.0.0 enhancementai
tobiu
tobiu commented on Feb 3, 2026, 7:30 PM
  • Create src/grid/Row.mjs extending Neo.component.Base.
  • Define configs: record, rowIndex, gridContainer.
  • Migrate cell rendering logic (HTML/Text) from Body.createRow to this new class.
  • Ensure the Row generates the correct VDOM structure matching the current grid row output.
tobiu added the enhancement label on Feb 3, 2026, 7:30 PM
tobiu added the ai label on Feb 3, 2026, 7:30 PM
tobiu added parent issue #8964 on Feb 3, 2026, 7:31 PM
tobiu assigned to @tobiu on Feb 3, 2026, 7:36 PM
tobiu referenced in commit 44e34b0 - "feat: Create Neo.grid.Row component (#8965)" on Feb 3, 2026, 8:19 PM
tobiu
tobiu Feb 3, 2026, 8:21 PM

Input from Gemini 3 Pro:

✦ Completed Neo.grid.Row implementation (Finalized).

Features:

  • Implements createVdom to replicate Grid Body rendering logic.
  • Adds record and rowIndex configs.
  • Optimization: rowIndex is reactive but has no afterSet hook. afterSetRecord is the sole trigger for createVdom. This ensures atomic updates during scrolling (row recycling) when row.set({record, rowIndex}) is called, preventing double rendering while ensuring the VDOM uses the latest index.

Ready for pooling integration in Grid.Body.

tobiu closed this issue on Feb 3, 2026, 8:21 PM
tobiu cross-referenced by #8967 on Feb 3, 2026, 8:33 PM