Frontmatter
| id | 8777 |
| title | Robust Theme Switching for Portal Canvases |
| state | Closed |
| labels | bugenhancementai |
| assignees | tobiu |
| createdAt | Jan 18, 2026, 3:15 PM |
| updatedAt | Jan 18, 2026, 3:21 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8777 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8727 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 18, 2026, 3:21 PM |
Robust Theme Switching for Portal Canvases
tobiu assigned to @tobiu on Jan 18, 2026, 3:15 PM
tobiu added parent issue #8727 on Jan 18, 2026, 3:15 PM

tobiu
Jan 18, 2026, 3:21 PM
Input from Gemini 3 Pro:
✦ I have implemented robust theme switching for the Portal Canvases to prevent race conditions.
- Refactored
isCanvasReadyfrom a class field to a reactive config inTimelineCanvas.mjsandCanvas.mjs(Home Hero).- Updated
afterSetThemeto checkisCanvasReadybefore calling the remote method.- Added
afterSetIsCanvasReadyto trigger the remotesetThemecall once the canvas connection is established.- Updated
afterSetOffscreenRegisteredto toggle theisCanvasReadyconfig.
tobiu closed this issue on Jan 18, 2026, 3:21 PM
isCanvasReadyfrom a class field to a reactive configisCanvasReady_inapps/portal/view/news/tickets/TimelineCanvas.mjsandapps/portal/view/home/parts/hero/Canvas.mjs.afterSetIsCanvasReadyhook.afterSetThemeto checkthis.isCanvasReadybefore calling the remote method.afterSetIsCanvasReadyto call the remotesetThememethod when the canvas becomes ready, ensuring the correct theme is applied even if the theme was set before the canvas connection was established.afterSetOffscreenRegisteredto toggleisCanvasReady(which will now trigger the reactive setter).