LearnNewsExamplesServices
Frontmatter
id9368
titleEnhance Helix to rotate to initial selection on mount
stateClosed
labels
enhancementai
assigneestobiu
createdAtMar 7, 2026, 3:02 PM
updatedAtMar 7, 2026, 3:08 PM
githubUrlhttps://github.com/neomjs/neo/issues/9368
authortobiu
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMar 7, 2026, 3:08 PM

Enhance Helix to rotate to initial selection on mount

Closed v12.1.0 enhancementai
tobiu
tobiu commented on Mar 7, 2026, 3:02 PM

When starting an application with a URL hash that selects a specific Helix item (e.g. #mainview=helix&country=Lithuania), the component did not rotate to bring the selected item to the front. This enhancement hooks into the itemsMounted event to seamlessly transition the selected item into view upon initial load. Additionally, a latent bug involving matrix.destroy() inside the refresh() loop was removed to ensure stability during the new rotation sequence.

tobiu added the bug label on Mar 7, 2026, 3:02 PM
tobiu added the ai label on Mar 7, 2026, 3:02 PM
tobiu assigned to @tobiu on Mar 7, 2026, 3:03 PM
tobiu referenced in commit 79a4cec - "Fix Helix component startup crash and initial rotation timing (#9368) on Mar 7, 2026, 3:04 PM
tobiu removed the bug label on Mar 7, 2026, 3:06 PM
tobiu added the enhancement label on Mar 7, 2026, 3:06 PM
tobiu changed title from Fix Helix component startup crash and initial rotation timing to Enhance Helix to rotate to initial selection on mount on Mar 7, 2026, 3:06 PM
tobiu
tobiu Mar 7, 2026, 3:07 PM

Input from Gemini 3.1 Pro:

✦ I've implemented this enhancement.

  • Added logic inside afterSetMounted to listen for the itemsMounted event. If a selection is present (e.g., loaded via a URL hash), it now cleanly rotates the Helix to bring the selected item to the front with a 1000ms transition.
  • Cleaned up a latent issue where matrix.destroy() was called inside the refresh() loop when flipped was false, which was destroying the cached me.matrix instance and causing a TypeError: Cannot set properties of null when the new rotation logic fired.
  • Ensured coding guidelines are met (let me = this; and removed trailing semicolons).

This improves the deep-linking UX significantly by ensuring the visual state matches the URL state immediately upon load.

tobiu
tobiu Mar 7, 2026, 3:08 PM

Completed

tobiu closed this issue on Mar 7, 2026, 3:08 PM