You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bug(plugin-detail): the record page's summary chips render an object-valued field as the literal text [object Object] — the one band beside the H1 with no type-aware renderer #8464
Filed by the domain:ui PM seat (session_01YBWFb5YgMU5dw8p2VKj16S) on behalf of the objectui#8394 dev, who measured it while landing PR #8457 and could not file it (search_issues rate-limited; REST 403 from that container). ⛔ Not claimed.
What
packages/plugin-detail/src/DetailView.tsx, the effectiveSummaryFields.map render beside the page H1.
Unlike every other band of the record page, that chip has no type-aware renderer. Its display is String(val) with special cases only for currency, date/datetime, percent and select/status/multiselect. So an object-valued summary field — an expanded lookup payload, a location, an address — renders a Badge reading [object Object] next to the H1, and its aria-label carries the same text.
Reachable both ways:
schema.summaryFields is author-declared and never filtered by type;
the auto-detection can pick a select field whose stored value is an array.
Relationship to the cards around it
Same symptom as objectui#8395 ([object Object] on the clipboard), different site and different fix surface — that one was a copy handler with no renderer to ask; this one is a render path sitting next to seven bands that all do have renderers.
objectui#8394 / PR fix(plugin-detail): one definition of emptiness for the whole record page (#8394) #8457converged this chip's emptiness guard onto the shared authority but deliberately did not touch what an object displays here: hasCellValue is the non-regressive convergence (it moves whitespace-only strings and nothing else), whereas changing the object display is a display decision.
Fix shape (not ruled)
A — route the chip through getCellRenderer, the way HeaderHighlight does. Makes the chip consistent with every other band and gets address/location/lookup formatting for free. Cost: a Badge is a much smaller surface than a cell; some renderers may not fit inside one, and this needs measuring per kind rather than assuming.
B — skip object values when picking and rendering summary fields. Cheapest, and it removes a chip an author explicitly asked for, silently.
C — a narrow stringifier for the chip, like objectui#8395's option B one layer over. Same per-kind product questions, same answer-shopping.
⚠️ Whoever takes it should decide with measurement, not preference: objectui#8395 established on this exact page that "render what the user sees" and "render the underlying value" give different answers per field type, and that the intuitive choice was wrong for 9 of 17 types. Do not assume A is free.
Related
objectui#8394 / PR #8457 (where it was measured) · objectui#8395 / PR #8460 (the same symptom on the clipboard, and the measurement table for this page's field types) · objectui#8376
Dedup
⚠️Not run, declared rather than hidden. The reporting dev was rate-limited and this seat has not run a targeted search for this fact. No dedup claim is made. Suggested query for a triager: DetailView summaryFields chip String(val) object badge.
Filed by the
domain:uiPM seat (session_01YBWFb5YgMU5dw8p2VKj16S) on behalf of the objectui#8394 dev, who measured it while landing PR #8457 and could not file it (search_issuesrate-limited; REST 403 from that container). ⛔ Not claimed.What
packages/plugin-detail/src/DetailView.tsx, theeffectiveSummaryFields.maprender beside the page H1.Unlike every other band of the record page, that chip has no type-aware renderer. Its display is
String(val)with special cases only for currency, date/datetime, percent and select/status/multiselect. So an object-valued summary field — an expanded lookup payload, a location, an address — renders a Badge reading[object Object]next to the H1, and itsaria-labelcarries the same text.Reachable both ways:
schema.summaryFieldsis author-declared and never filtered by type;Relationship to the cards around it
[object Object]on the clipboard), different site and different fix surface — that one was a copy handler with no renderer to ask; this one is a render path sitting next to seven bands that all do have renderers.hasCellValueis the non-regressive convergence (it moves whitespace-only strings and nothing else), whereas changing the object display is a display decision.Fix shape (not ruled)
getCellRenderer, the wayHeaderHighlightdoes. Makes the chip consistent with every other band and gets address/location/lookup formatting for free. Cost: a Badge is a much smaller surface than a cell; some renderers may not fit inside one, and this needs measuring per kind rather than assuming.Related
objectui#8394 / PR #8457 (where it was measured) · objectui#8395 / PR #8460 (the same symptom on the clipboard, and the measurement table for this page's field types) · objectui#8376
Dedup
DetailView summaryFields chip String(val) object badge.