feat: visually distinguish null, empty, whitespace, NaN, and Infinity in table cells#9218
feat: visually distinguish null, empty, whitespace, NaN, and Infinity in table cells#9218kirangadhave merged 4 commits intomainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR enhances the frontend data-table rendering to visually distinguish sentinel-like values (null, empty string, whitespace-only strings, NaN, and ±Infinity) in both table cells and the filter-by-values UI, addressing #9155.
Changes:
- Added sentinel detection (
detectSentinel) including numeric-special-string handling gated by numeric column context. - Introduced a
SentinelCellrenderer to display sentinel values with consistent pill styling and whitespace markers. - Updated table cell rendering + filter-by-values dropdown to use sentinel rendering; added unit tests for detection and rendering.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/components/data-table/utils.ts | Adds detectSentinel to identify null/empty/whitespace/NaN/Infinity (with numeric-column option). |
| frontend/src/components/data-table/types.ts | Introduces sentinel union types and isNumericType helper for numeric checks. |
| frontend/src/components/data-table/sentinel-cell.tsx | New component to render sentinel pills and whitespace markers with tooltip/aria text. |
| frontend/src/components/data-table/columns.tsx | Uses sentinel detection to render sentinel pills in table cells. |
| frontend/src/components/data-table/column-header.tsx | Uses sentinel rendering in filter-by-values dropdown, with numeric type context. |
| frontend/src/components/data-table/tests/utils.test.ts | Adds unit tests covering sentinel detection behavior. |
| frontend/src/components/data-table/tests/sentinel-cell.test.tsx | Adds unit tests for sentinel pill rendering and accessibility attributes. |
|
@kirangadhave you may also want to look at And |
I have it my global CLAUDE.md, to remind me about accessibility when reviewing my work |


Closes #9155
Summary
Nonein an italic muted pill<empty>in filter dropdown␣(space),→(tab),↵(newline)NaN, Infinity asinf/-inf— all in italic muted pills