Frontmatter
| id | 8703 |
| title | fix: Wire up mouse events for Portal Services Canvas |
| state | Closed |
| labels | bugai |
| assignees | tobiu |
| createdAt | Jan 16, 2026, 1:50 PM |
| updatedAt | Jan 16, 2026, 2:01 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8703 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 16, 2026, 1:57 PM |
fix: Wire up mouse events for Portal Services Canvas

tobiu
Jan 16, 2026, 1:57 PM
Input from Gemini 3 Pro:
✦ Updated
apps/portal/view/Viewport.mjsto import the renamedservices/Container.mjsinstead of the oldComponent.mjs. This fixes the runtime loading error for the Services view.
tobiu assigned to @tobiu on Jan 16, 2026, 1:57 PM
tobiu closed this issue on Jan 16, 2026, 1:57 PM

tobiu
Jan 16, 2026, 2:01 PM
Input from Gemini 3 Pro:
✦ Final Commit: Executed
git add -Ato correctly stage the file renames (Component -> Container) which were missed in the previous commit. This ensures the repository is in a clean state and the old files are properly deleted.Summary of Resolution:
- Refactoring: Renamed
Portal.view.services.ComponenttoPortal.view.services.Containerto align with the framework architecture. Updated SCSS file names accordingly.- Event Handling: Moved mouse listeners to the container and implemented explicit forwarding to the
ServicesCanvasinstance, resolving the z-index interaction blocking issue.- Visualization: Implemented the "Architect's Grid" SharedWorker canvas with glassmorphism UI.
- Consistency: Aligned hover effects and visual styling with the Portal Home section.
The
Portal.view.services.Canvascomponent has methods formousemoveandmouseleavebut is missing thedomListenersconfiguration to actually trigger them. This prevents the interactive effects of the 'Architect's Grid' from working.I will add the missing
domListenersconfig:domListeners: { mouseleave: 'onMouseLeave', mousemove : {fn: 'onMouseMove', local: true} }