Skip to content

Commit aec77d0

Browse files
Copilothotlong
andcommitted
fix: align plugin-list viewType enum and plugin-detail registration inputs with spec
- plugin-list: Remove invalid 'list'/'chart' types from viewType enum, add 'gallery'/'timeline'/'gantt'/'map' to match spec ListView type values - plugin-detail: Add missing detail-view inputs (layout, columns, loading, backUrl, editUrl, deleteConfirmation, header, footer) - plugin-detail: Add showBorder and headerColor to detail-section inputs Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 1dd503c commit aec77d0

3 files changed

Lines changed: 21 additions & 4 deletions

File tree

ROADMAP.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,9 @@ The `FlowDesigner` is a canvas-based flow editor that bridges the gap between th
759759
- [x] `@object-ui/types`: Sync `DetailViewFieldSchema` Zod validator with TS interface — add data-oriented field types (`number`, `currency`, `percent`, `boolean`, `select`, `lookup`, `master_detail`, `email`, `url`, `phone`, `user`) and missing properties (`options`, `reference_to`, `reference_field`, `currency`)
760760
- [x] `@object-ui/types`: Add `showBorder` and `headerColor` to `DetailViewSectionSchema` Zod validator (already in TS interface)
761761
- [x] `@object-ui/plugin-view`: Add `gallery` and `gantt` to ViewSwitcher default labels and icons
762+
- [x] `@object-ui/plugin-list`: Fix `list-view` and `list` registration `viewType` enum — remove invalid `'list'`/`'chart'`, add `'gallery'`/`'timeline'`/`'gantt'`/`'map'` to match spec
763+
- [x] `@object-ui/plugin-detail`: Add missing `detail-view` registration inputs (`layout`, `columns`, `loading`, `backUrl`, `editUrl`, `deleteConfirmation`, `header`, `footer`)
764+
- [x] `@object-ui/plugin-detail`: Add `showBorder` and `headerColor` inputs to `detail-section` registration
762765

763766
### P2.6 ListView Spec Protocol Gaps (Remaining) ✅
764767

packages/plugin-detail/src/index.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,22 @@ ComponentRegistry.register('detail-view', DetailView, {
6666
{ name: 'resourceId', type: 'string', label: 'Resource ID' },
6767
{ name: 'api', type: 'string', label: 'API Endpoint' },
6868
{ name: 'data', type: 'object', label: 'Data' },
69+
{ name: 'layout', type: 'enum', label: 'Layout Mode', enum: ['vertical', 'horizontal', 'grid'] },
70+
{ name: 'columns', type: 'number', label: 'Grid Columns' },
6971
{ name: 'sections', type: 'array', label: 'Sections' },
7072
{ name: 'fields', type: 'array', label: 'Fields' },
7173
{ name: 'tabs', type: 'array', label: 'Tabs' },
7274
{ name: 'related', type: 'array', label: 'Related Lists' },
7375
{ name: 'actions', type: 'array', label: 'Actions' },
7476
{ name: 'showBack', type: 'boolean', label: 'Show Back Button', defaultValue: true },
77+
{ name: 'backUrl', type: 'string', label: 'Back URL' },
7578
{ name: 'showEdit', type: 'boolean', label: 'Show Edit Button', defaultValue: false },
79+
{ name: 'editUrl', type: 'string', label: 'Edit URL' },
7680
{ name: 'showDelete', type: 'boolean', label: 'Show Delete Button', defaultValue: false },
81+
{ name: 'deleteConfirmation', type: 'string', label: 'Delete Confirmation Message' },
82+
{ name: 'loading', type: 'boolean', label: 'Show Loading State' },
83+
{ name: 'header', type: 'object', label: 'Custom Header' },
84+
{ name: 'footer', type: 'object', label: 'Custom Footer' },
7785
],
7886
defaultProps: {
7987
title: 'Detail View',
@@ -99,6 +107,8 @@ ComponentRegistry.register('detail-section', DetailSection, {
99107
{ name: 'collapsible', type: 'boolean', label: 'Collapsible', defaultValue: false },
100108
{ name: 'defaultCollapsed', type: 'boolean', label: 'Default Collapsed', defaultValue: false },
101109
{ name: 'columns', type: 'number', label: 'Columns', defaultValue: 2 },
110+
{ name: 'showBorder', type: 'boolean', label: 'Show Border', defaultValue: true },
111+
{ name: 'headerColor', type: 'string', label: 'Header Color' },
102112
],
103113
});
104114

packages/plugin-list/src/index.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ ComponentRegistry.register('list-view', ListView, {
3131
{ name: 'objectName', type: 'string', label: 'Object Name', required: true },
3232
{ name: 'viewType', type: 'enum', label: 'Default View', enum: [
3333
{ label: 'Grid', value: 'grid' },
34-
{ label: 'List', value: 'list' },
3534
{ label: 'Kanban', value: 'kanban' },
35+
{ label: 'Gallery', value: 'gallery' },
3636
{ label: 'Calendar', value: 'calendar' },
37-
{ label: 'Chart', value: 'chart' }
37+
{ label: 'Timeline', value: 'timeline' },
38+
{ label: 'Gantt', value: 'gantt' },
39+
{ label: 'Map', value: 'map' },
3840
], defaultValue: 'grid' },
3941
{ name: 'fields', type: 'array', label: 'Fields' },
4042
{ name: 'filters', type: 'array', label: 'Filters' },
@@ -61,10 +63,12 @@ ComponentRegistry.register('list', ListView, {
6163
{ name: 'objectName', type: 'string', label: 'Object Name', required: true },
6264
{ name: 'viewType', type: 'enum', label: 'Default View', enum: [
6365
{ label: 'Grid', value: 'grid' },
64-
{ label: 'List', value: 'list' },
6566
{ label: 'Kanban', value: 'kanban' },
67+
{ label: 'Gallery', value: 'gallery' },
6668
{ label: 'Calendar', value: 'calendar' },
67-
{ label: 'Chart', value: 'chart' }
69+
{ label: 'Timeline', value: 'timeline' },
70+
{ label: 'Gantt', value: 'gantt' },
71+
{ label: 'Map', value: 'map' },
6872
], defaultValue: 'grid' },
6973
{ name: 'fields', type: 'array', label: 'Fields' },
7074
{ name: 'filters', type: 'array', label: 'Filters' },

0 commit comments

Comments
 (0)