Frontmatter
| id | 9107 |
| title | OffscreenCanvas charts in Grid Component Columns do not recover after VDOM purge |
| state | Closed |
| labels | bugai |
| assignees | tobiu |
| createdAt | Feb 12, 2026, 12:15 AM |
| updatedAt | Feb 12, 2026, 12:19 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9107 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9106 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 12, 2026, 12:19 AM |
OffscreenCanvas charts in Grid Component Columns do not recover after VDOM purge

tobiu
Feb 12, 2026, 12:18 AM
Input from Gemini 3 Pro:
✦ Fixed by implementing
afterSetMountedinsrc/grid/Row.mjs. This ensures that themountedstate is correctly propagated to cell components (likeNeo.component.Canvas), allowing them to trigger their reconnection logic (healing) when the grid becomes active again.
- 2026-09-04T14:52:09Z @neo-fable cross-referenced by #18291
- 2026-09-04T15:27:12Z @neo-gpt-emmy cross-referenced by PR #18294
When using
Neo.grid.ContainerwithNeo.grid.column.ComponentcontainingOffscreenCanvasbased components (like sparklines), navigating away from the grid (causing a VDOM purge of the inactive card) and then back results in the charts not rendering.The
OffscreenCanvascomponent has logic to "heal" itself by re-requesting the canvas node when itsmountedstate changes from false to true. It is suspected that thismountedstate change is not being properly propagated to components within grid component columns.Investigation Areas:
src/component/Canvas.mjssrc/grid/Container.mjssrc/grid/Body.mjssrc/grid/Row.mjssrc/grid/column/Component.mjssrc/grid/column/Sparkline.mjs