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
test on the uischema
- Add a Control to the layout for a compound object property and add this additional
test property.
- notice that the form for the object is rendered as a group, but the custom Group renderer is not being used, although the
test property 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)
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
teston the uischematestproperty.testproperty was available on the uischema of the object Control.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:
jsonforms/packages/material-renderers/src/complex/MaterialObjectRenderer.tsx
Line 60 in bb7a255
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)