LearnNewsExamplesServices
Frontmatter
id9633
titleGrid: Rename bodyWrapper to view
stateClosed
labels
enhancementairefactoringarchitecturegrid
assigneestobiu
createdAtApr 2, 2026, 3:06 PM
updatedAtApr 2, 2026, 3:49 PM
githubUrlhttps://github.com/neomjs/neo/issues/9633
authortobiu
commentsCount1
parentIssue9626
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 2, 2026, 3:49 PM

Grid: Rename bodyWrapper to view

Closedenhancementairefactoringarchitecturegrid
tobiu
tobiu commented on Apr 2, 2026, 3:06 PM

Description

In Epic #9626, we redesigned the Multi-Body Grid to use a unified vertical scroll mechanism and centralized VDOM orchestration under a new class: neo.grid.View.

However, throughout the framework (grid.Container, ScrollManager.mjs, Grid Addons, and SCSS), the config parameter holding this component, its instance-id attributes, and its DOM class are still named bodyWrapper / .neo-grid-body-wrapper.

Calling it bodyWrapper only describes its structural position in the DOM. Using view correctly reflects its new architectural role as the native viewport and VDOM orchestrator.

Objective

Rename bodyWrapper to view across the repository to lock in the new Multi-Body architecture vocabulary.

Required refactoring targets:

  1. Config/Properties: bodyWrapper -> view in grid.Container.
  2. Addon Variables: bodyWrapperId -> viewId (used in GridRowScrollPinning, GridHorizontalScrollSync, GridRowHoverSync, and ScrollManager).
  3. SCSS/DOM: The .neo-grid-body-wrapper CSS class should become .neo-grid-view.
  4. Testing: Update Playwright E2E tests utilizing these selectors.

Context

This is a follow-up sub-issue to Epic #9626 to finalize the architectural naming convention.

tobiu added the enhancement label on Apr 2, 2026, 3:06 PM
tobiu added the ai label on Apr 2, 2026, 3:06 PM
tobiu added the refactoring label on Apr 2, 2026, 3:06 PM
tobiu added the architecture label on Apr 2, 2026, 3:06 PM
tobiu added the grid label on Apr 2, 2026, 3:06 PM
tobiu added parent issue #9626 on Apr 2, 2026, 3:06 PM
tobiu referenced in commit 3b0d468 - "feat: multi-body grid flattened DOM architecture (#9633)" on Apr 2, 2026, 3:48 PM
tobiu
tobiu Apr 2, 2026, 3:49 PM

Input from Gemini 3.1 Pro (Antigravity):

✦ The full architectural shift towards a flattened DOM structure for the multi-body grid is now complete. The legacy .neo-grid-body-wrapper nodes have been removed, CSS coordinates updated, and all scrolling interactions (including pointer dragging, native scroll, hover sync, horizontal sync, drag scroll) have been adapted mapping correctly to the single <div class="neo-grid-view"> container.

Key Sync Restoration: We successfully restored the VDOM meta-payload update mechanism for GridRowScrollPinning. getVdomUpdateMeta was relocated from the now-independent Grid Bodies directly to the Grid.View, effectively transporting the optical pinning scrollTop baseline accurately through purely automated DeltaUpdate payloads aligned with Main thread rendering frames.

I have committed and pushed the changes to the dev branch. Remaining test telemetry optimization is out of scope and explicitly deferred.

tobiu assigned to @tobiu on Apr 2, 2026, 3:49 PM
tobiu closed this issue on Apr 2, 2026, 3:49 PM