Summary
An object-grid block placed on a structured page renders the same per-row hover affordance as the standard object list — the row number turns into a 「打开 ›」 button on hover — but clicking it does nothing: no navigation, no drawer, no console error, no network request. On the standard list page (/_console/apps/<app>/<object>) the identical button navigates to /_console/apps/<app>/<object>/record/<id>.
Users read the affordance as "open this record" (it is the only visible way out of the row), click it, and conclude the page is broken. This surfaced the first time a real user touched the page.
Minimal reproduction
Platform 17.2.0 console.
Page (definePage, type: 'home', kind: 'full') with a component:
{ type: 'object-grid', properties: { objectName: 'kpi_entry_line', editable: true, columns: [...] } }
- Open the page as any user; hover a row → the
# cell shows the button absolute inset-0 hidden group-hover/row:flex … 打开 › (it has an onclick).
- Click it.
Observed (measured via script on the page): location.pathname unchanged, [role=dialog] count 0, no error events, no new requests. Four such buttons exist for four rows; all inert.
Control: same object, standard list page, same button → location.pathname becomes /_console/apps/com.objectstack.kpi/kpi_entry_line/record/<id>.
Expected
- Either the button navigates to the record (page or drawer) with the page as the
from breadcrumb, like the list view does, or
- the block does not render the affordance when it has no open handler (and exposes a property such as
rowClick: 'record' | 'none' so the author can choose).
Environment
@objectstack/console 17.2.0 · objectstack dev · Chromium 1440×900 · zh-CN. App: objectstack-ai/kpi, page kpi_home, block on kpi_entry_line (also reproduced on the second block bound to kpi_entry_sheet).
Summary
An
object-gridblock placed on a structured page renders the same per-row hover affordance as the standard object list — the row number turns into a 「打开 ›」 button on hover — but clicking it does nothing: no navigation, no drawer, no console error, no network request. On the standard list page (/_console/apps/<app>/<object>) the identical button navigates to/_console/apps/<app>/<object>/record/<id>.Users read the affordance as "open this record" (it is the only visible way out of the row), click it, and conclude the page is broken. This surfaced the first time a real user touched the page.
Minimal reproduction
Platform 17.2.0 console.
Page (
definePage,type: 'home',kind: 'full') with a component:#cell shows the buttonabsolute inset-0 hidden group-hover/row:flex … 打开 ›(it has anonclick).Observed (measured via script on the page):
location.pathnameunchanged,[role=dialog]count 0, no error events, no new requests. Four such buttons exist for four rows; all inert.Control: same object, standard list page, same button →
location.pathnamebecomes/_console/apps/com.objectstack.kpi/kpi_entry_line/record/<id>.Expected
frombreadcrumb, like the list view does, orrowClick: 'record' | 'none'so the author can choose).Environment
@objectstack/console17.2.0 ·objectstack dev· Chromium 1440×900 · zh-CN. App: objectstack-ai/kpi, pagekpi_home, block onkpi_entry_line(also reproduced on the second block bound tokpi_entry_sheet).