Frontmatter
| id | 9018 |
| title | Remove obsolete component management logic from Grid.Body |
| state | Closed |
| labels | airefactoringcore |
| assignees | tobiu |
| createdAt | Feb 6, 2026, 7:09 PM |
| updatedAt | Feb 6, 2026, 7:10 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9018 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 6, 2026, 7:10 PM |
Remove obsolete component management logic from Grid.Body

tobiu
Feb 6, 2026, 7:09 PM
Input from Gemini 3 Pro:
✦ I have removed the obsolete
clearComponentColumnMapsandcleanupComponentInstancesmethods fromsrc/grid/Body.mjs. This resolves theTypeError: Cannot read properties of undefined (reading 'forEach')crash exposed by the unit tests. Component lifecycle is now correctly handled byNeo.grid.Row.Code has been pushed to
dev.
tobiu assigned to @tobiu on Feb 6, 2026, 7:10 PM
tobiu closed this issue on Feb 6, 2026, 7:10 PM
Objective: Remove
clearComponentColumnMapsandcleanupComponentInstancesmethods fromNeo.grid.Body. These methods are obsolete artifacts from the pre-Row-Pooling architecture and are causing crashes (TypeError: Cannot read properties of undefined (reading 'forEach')) becausecolumn.mapno longer exists.Context:
GridBodymanaged component instances (e.g., Sparklines) usingcolumn.map.Neo.grid.Rowmanages its own component instances inthis.componentsand cleans them up in itsdestroy()method.GridBodywas still attempting to accesscolumn.mapduringdestroy()andonStoreLoad(), causing a hard crash.Changes Required:
src/grid/Body.mjsclearComponentColumnMapsandcleanupComponentInstances.destroy(),afterSetStore(), andonStoreLoad().Verification:
test/playwright/unit/grid/Teleportation.spec.mjsno longer crashes withTypeError.Related:
Teleportation.spec.mjs.