webiny-js icon indicating copy to clipboard operation
webiny-js copied to clipboard

HCMS: Configure Dynamic Zone and Object field to be expanded by default

Open ma-schmidt-de opened this issue 9 months ago • 1 comments

Is your feature request related to a problem? Please describe.

In our customer project, we see the requirement to always render a dynamic zone open with it's content. Right now, every time a DZ is rendered, it is collapsed and editors always have to spend an additional click to open it and see the inner content.

Describe the feature's behavior.

To improve editor UX, it would be best to configure a DZ or an object (accordion renderer) to always be expanded when rendered initially.

  • The AccordionItem react component used in dynamicZoneRenderer.tsx does indeed support an open property which I expect does open the accordion item by default
  • I'd say, there are only two things we need to do:
    • Extend the CmsModelFieldSettings by an open?: boolean attribute or use it's definition [key: string]: any to support the new open configuration.
    • Pass the value of the open configuration to the open property of the AccordionItem in the dynamic zone renderer and the object renderers (single & multiple). Something like:
<AccordionItem
  title={title}
  description={description}
  className={className || defaultClassName}
  open={field.settings?.open || false}
  >
    {children}
</AccordionItem>

Describe alternatives you've considered.

No response

ma-schmidt-de avatar May 03 '24 16:05 ma-schmidt-de

My considerations are based on the case that the content model is defined in-code. Additional masseurs have to be taken in order to enable the open config for the no-code content model editor.

ma-schmidt-de avatar May 03 '24 16:05 ma-schmidt-de