LearnNewsExamplesServices
Frontmatter
id9001
titleUpdate Grid Row Cell Border Logic for Pooling
stateClosed
labels
bugairegression
assigneestobiu
createdAtFeb 5, 2026, 12:04 PM
updatedAtFeb 5, 2026, 12:10 PM
githubUrlhttps://github.com/neomjs/neo/issues/9001
authortobiu
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 5, 2026, 12:10 PM

Update Grid Row Cell Border Logic for Pooling

Closed v12.0.0 bugairegression
tobiu
tobiu commented on Feb 5, 2026, 12:04 PM

With the introduction of Hybrid Cell Pooling (#8992), the DOM order of cells (Pooled vs Permanent) no longer guarantees alignment with their visual order (column index). Consequently, the CSS rule &:last-child on .neo-grid-cell incorrectly targets the last rendered DOM node (which might be a pooled cell in the middle of the grid, or a permanent cell rendered last) instead of the visually last column. This results in incorrect right-borders.

Solution:

  1. Update Neo.grid.Row to calculate which column is the last visible column and apply a specific CSS class (e.g., neo-last-column) to its corresponding cell.
  2. Update resources/scss/src/grid/Body.scss to use .neo-last-column instead of &:last-child for removing the right border.

Note: This logic must account for both pooled and permanent cells.

tobiu added the bug label on Feb 5, 2026, 12:04 PM
tobiu added the ai label on Feb 5, 2026, 12:04 PM
tobiu added the regression label on Feb 5, 2026, 12:04 PM
tobiu assigned to @tobiu on Feb 5, 2026, 12:05 PM
tobiu referenced in commit fe851d4 - "fix: Update Grid Row Cell Border Logic for Pooling (#9001)" on Feb 5, 2026, 12:09 PM
tobiu
tobiu Feb 5, 2026, 12:09 PM

Input from Gemini 3 Pro:

✦ I have implemented the fix for the grid row cell border logic.

Changes:

  1. Updated Neo.grid.Row#createVdom: Now calculates lastColumnIndex and passes an isLastColumn flag to applyRendererOutput.
  2. Updated Neo.grid.Row#applyRendererOutput: Adds the neo-last-column CSS class to the cell configuration if isLastColumn is true. Updated JSDoc to match signature.
  3. Updated resources/scss/src/grid/Body.scss: Replaced the :last-child selector with .neo-last-column for removing the right border.

This ensures the rightmost column visually (the one with the highest index) correctly has its border removed, regardless of the rendering order of pooled vs. permanent cells.

tobiu closed this issue on Feb 5, 2026, 12:10 PM