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
feat(views): the list toolbar speaks one vocabulary — userActions (#2890) (#2948)
The seven bare `show*` toolbar flags fold into the spec's `userActions` and the
renderer reads nothing else; `showDescription` folds into
`appearance.showDescription` at the same boundary.
The last three — `group` / `hideFields` / `rowColor` — are NEW keys, and they
close a capability hole rather than renaming one. The spec documents
`userActions` as "which interactive actions are available to users in the view
toolbar — each boolean toggles the corresponding toolbar element on/off", and
already carries `rowHeight` (objectui's `showDensity` under its spec name).
Grouping, column visibility and row coloring are the same kind of toggle: the
spec models all three as configuration (`grouping`, `hiddenFields`, `rowColor`)
but has no "may the user change it" switch for any of them.
That gap was visible in the product. With no `userActions` key to read, the two
list surfaces hardcoded OPPOSITE policies — InterfaceListPage pinned all three
off, ObjectDataPage pinned two on — and an interface-page author could not turn
grouping back on for end users at all. Both now express policy as `userActions`
defaults, which an author can override.
Until the keys land upstream, @object-ui/types carries them as a documented
`.extend()` on `UserActionsConfigSchema`, the shape `ListColumnSchema` already
uses while waiting on objectstack#3761. The spec schema is not `.strict()`, so
before this an author writing `userActions: { group: false }` had it silently
stripped — valid on parse, no effect at render.
Defaults unchanged and deliberately asymmetric: search/sort/filter/rowHeight/
group on unless turned off, hideFields/rowColor off unless turned on. Unifying
them would grow two buttons on every existing view — its own product decision,
not something to smuggle into a vocabulary migration.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments