Frontmatter
| id | 8794 |
| title | Refactor Portal Canvases: Promote mouse handling and common state to Base class |
| state | Closed |
| labels | airefactoring |
| assignees | tobiu |
| createdAt | Jan 19, 2026, 2:03 AM |
| updatedAt | Jan 19, 2026, 2:10 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8794 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 19, 2026, 2:10 AM |
Refactor Portal Canvases: Promote mouse handling and common state to Base class
tobiu assigned to @tobiu on Jan 19, 2026, 2:09 AM

tobiu
Jan 19, 2026, 2:09 AM
Input from Gemini 3 Pro:
✦ Refactoring complete.
Portal.canvas.Basenow managesmouse,time, andgradients. TheupdateMouseStatemethod is centralized in the base class, and subclasses use theonMouseClickhook for specific interaction logic. Redundant code has been removed fromHomeCanvas,ServicesCanvas, andHeaderCanvas.
tobiu closed this issue on Jan 19, 2026, 2:10 AM
Further enhance
Portal.canvas.Baseby promoting common state and mouse handling logic found in 3/4 canvas subclasses.Goals:
mouse,gradients, andtimetoPortal.canvas.Base.updateMouseStateinBasethat handles position tracking.onMouseClick(data)hook inBase(called byupdateMouseState).HomeCanvas,ServicesCanvas,HeaderCanvas: Remove redundant fields/methods.updateMouseStatelogic intoonMouseClickimplementations.Base.clearGraphresets the new fields.