Skip to content

Commit cd63f70

Browse files
os-zhuangclaude
andauthored
feat(spec): interface base filterBy uses the unified filter-builder widget (#2056)
The page form rendered `interfaceConfig.filterBy` (the always-on base filter) as a generic `type:'repeater'`, a different and clunkier editor than the polished FilterBuilder the list toolbar uses. Switch it to `widget:'filter-builder'` with `dependsOn:'source'` so the Studio renders the same popout visual builder for the base filter as for the per-tab presets — one consistent filter UX everywhere. The widget is implemented in objectui (SchemaForm widget registry); stored format is unchanged (ViewFilterRule[]). Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 123f971 commit cd63f70

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

packages/spec/src/ui/page.form.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export const pageForm = defineForm({
9292
// Columns are defined ON the page (no view inheritance). `dependsOn:
9393
// 'source'` tells the picker which object's fields to offer.
9494
{ field: 'columns', widget: 'field-multi', dependsOn: 'source', helpText: 'Columns to show — defined directly on the page (blank = all object fields)' },
95-
{ field: 'filterBy', type: 'repeater', helpText: 'Always-on base filter for the page' },
95+
{ field: 'filterBy', widget: 'filter-builder', dependsOn: 'source', helpText: 'Always-on base filter for the page — same visual builder as the list toolbar.' },
9696
{ field: 'levels', helpText: 'Hierarchy levels to display (tree-like sources)' },
9797
// ── Appearance ──
9898
{ field: 'appearance', type: 'composite', disclosure: 'popover', helpText: 'Allowed visualizations (Grid / Kanban / Calendar / …) and description visibility' },

0 commit comments

Comments
 (0)