LearnNewsExamplesServices
Frontmatter
id8968
titlerefactor: Migrate Component Columns to use Neo.grid.Row lifecycle (#8964)
stateClosed
labels
airefactoring
assigneestobiu
createdAtFeb 3, 2026, 7:31 PM
updatedAtFeb 3, 2026, 8:44 PM
githubUrlhttps://github.com/neomjs/neo/issues/8968
authortobiu
commentsCount1
parentIssue8964
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 3, 2026, 8:44 PM

refactor: Migrate Component Columns to use Neo.grid.Row lifecycle (#8964)

Closed v12.0.0 airefactoring
tobiu
tobiu commented on Feb 3, 2026, 7:31 PM
  • Refactor Neo.grid.column.Component handling.
  • Move logic from Body.cleanupComponentInstances to Neo.grid.Row.
  • The Row component should automatically instantiate, update, or destroy cell components (like Sparklines) based on its state and the column configuration.
tobiu added the ai label on Feb 3, 2026, 7:31 PM
tobiu added the refactoring label on Feb 3, 2026, 7:31 PM
tobiu added parent issue #8964 on Feb 3, 2026, 7:31 PM
tobiu assigned to @tobiu on Feb 3, 2026, 8:34 PM
tobiu referenced in commit ba03eb5 - "refactor: Migrate Component Columns to use Neo.grid.Row lifecycle (#8968)" on Feb 3, 2026, 8:43 PM
tobiu
tobiu Feb 3, 2026, 8:43 PM

Input from Gemini 3 Pro:

✦ Completed Neo.grid.column.Component refactor.

Changes:

  • Removed map and getComponentId from Neo.grid.column.Component.
  • Refactored cellRenderer to be stateless regarding instances: it now accepts an existing component from the Row via arguments.
  • Neo.grid.Row now manages the lifecycle of cell components (storage in this.components, destruction in destroy()).
  • Components are now created with parentComponent: row instead of body.

This eliminates the "Zombie Canvas" issue as components are tightly coupled to the stable Row instances.

tobiu closed this issue on Feb 3, 2026, 8:44 PM