-
Notifications
You must be signed in to change notification settings - Fork 418
Open
Milestone
Description
Describe the bug
When you add a UI Control for a complex object, the default behaviour is to wrap the UI with a Group or VerticalLayout.
When extra props are added to customize the behaviour for this Layout Renderers, these are not available in the Customize Group or VerticalLayout Renderer.
Expected behavior
I would expect all props that are set in the uischema to be propagated to the Layout renderer as well.
Steps to reproduce the issue
- Add a custom Group Renderer that checks for the existence of an additional property
teston the uischema - Add a Control to the layout for a compound object property and add this additional
testproperty. - notice that the form for the object is rendered as a group, but the custom Group renderer is not being used, although the
testproperty was available on the uischema of the object Control.
{
uischema: {
type: 'VerticalLayout',
elements: [
{
type: 'Control',
acl: 'PRIVATE',
label: 'an ACL compound object',
asCard: false,
preset: 'header',
scope: '#/properties/reinforcement',
},
],
},
schema: {
type: 'object',
properties: {
reinforcement: {
type: 'object',
properties: {
type: {
type: 'string',
enum: ['sunk', 'embedded', 'hybrid'],
},
strength: {
type: 'number',
unit: '<sup>kg</sup>⁄<sub>m<sup>2</sup></sub>',
},
},
},
},
},
Screenshots
No response
Which Version of JSON Forms are you using?
v3.2.1
Framework
React
RendererSet
Material
Additional context
Just spreading all of the uischema props, fixes this:
findUISchema(
// @ts-expect-error
uischemas,
schema,
uischema.scope,
path,
() =>
isEmpty(path)
? Generate.uiSchema(schema, 'VerticalLayout', undefined, rootSchema)
: {
...uischema,
...Generate.uiSchema(schema, 'Group', undefined, rootSchema),
label,
// preset: 'header',
// asCard: false,
},
uischema,
rootSchema,
),
I setup a custom Object Renderer wit higher priority to do this, but I would suggest to consider this adding it to core behaviour (not only for Group Layouts, but also for VerticalLayout and other renderers and frameworks)
Metadata
Metadata
Assignees
Labels
No labels