Frontmatter
| id | 8942 |
| title | Refactor: DevRank Grid Location Column (VDOM + SCSS) |
| state | Closed |
| labels | airefactoring |
| assignees | tobiu |
| createdAt | Feb 1, 2026, 6:58 PM |
| updatedAt | Feb 2, 2026, 12:55 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8942 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | 8930 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 1, 2026, 7:21 PM |
Refactor: DevRank Grid Location Column (VDOM + SCSS)

tobiu
Feb 1, 2026, 7:15 PM
Input from Gemini 3 Pro:
✦ I have refactored the 'User' and 'Location' columns to use
type: 'component'.Changes:
- Component Columns: Switched from raw
rendererfunctions (returning VDOM strings/objects) tocomponentconfigs returningNeo.component.Baseconfigurations. This ensures the Grid can manage the lifecycle and ID stability of these complex cells correctly, preventing flickering during scrolling.- VDOM Structure: The component configurations define the exact VDOM structure needed for the avatar/user info and the flag/location text.
- SCSS Updates: Extracted styles to
GridContainer.scssand added classes (.user-cell,.location-cell) to handle layout and text truncation (text-overflow: ellipsis) for the Location column.- Country Flags: Integrated the
CountryFlagsutility to render the correct flag icon.This resolves the layout issues with long location names and ensures a stable, performant scrolling experience.

tobiu
Feb 1, 2026, 7:18 PM
Input from Gemini 3 Pro:
✦ I have also hardened the
CountryFlags.getFlagUrl()method to strictly validate that the resolved country code is a 2-letter lowercase string (a-z). This prevents the generation of invalid URLs when the location field contains non-standard characters (like '☁︎') that might have slipped through the normalization logic.
The 'Location' column in the DevRank grid suffers from layout issues when the text is too long, causing the row height to expand.
Requirements:
text-overflow: ellipsis,white-space: nowrap) to handle long location names gracefully without breaking the row height.apps/devrank/resources/scss/view/GridContainer.scssor similar).Acceptance Criteria: