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 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 1, 2026, 7:21 PM |
Refactor: DevRank Grid Location Column (VDOM + SCSS)
tobiu added parent issue #8930 on Feb 1, 2026, 6:59 PM

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.
tobiu closed this issue on Feb 1, 2026, 7:21 PM
tobiu assigned to @tobiu on Feb 2, 2026, 12:55 AM
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: