Skip to content

Commit

Permalink
[form-builder] Fix bug with fieldsets being non-collapsible and colla…
Browse files Browse the repository at this point in the history
…psed by default (#514)
  • Loading branch information
bjoerge committed Jan 19, 2018
1 parent bd9ab37 commit 409f28f
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions packages/@sanity/form-builder/src/inputs/Object/Object.js
Expand Up @@ -9,6 +9,10 @@ import isEmpty from '../../utils/isEmpty'
import UnknownFields from './UnknownFields'
import fieldStyles from './styles/Field.css'

function checkIsCollapsible(options = {}) {
return options.collapsible !== false && options.collapsable !== false
}

export default class ObjectInput extends React.PureComponent {

static propTypes = {
Expand Down Expand Up @@ -88,10 +92,12 @@ export default class ObjectInput extends React.PureComponent {
renderFieldset(fieldset, fieldsetIndex) {
const {level, focusPath} = this.props
const columns = fieldset.options && fieldset.options.columns
const isCollapsible = fieldset.options && (fieldset.options.collapsable || fieldset.options.collapsible)
const isExpanded = focusPath.length > 0 && fieldset.fields.some(field => (

const isCollapsed = (fieldset.options || {}).collapsed === true

const isExpanded = !isCollapsed || (focusPath.length > 0 && fieldset.fields.some(field => (
focusPath[0] === field.name
))
)))

return (
<div key={fieldset.name} className={fieldStyles.root}>
Expand All @@ -100,7 +106,7 @@ export default class ObjectInput extends React.PureComponent {
description={fieldset.description}
level={level + 1}
columns={columns}
isCollapsible={isCollapsible}
isCollapsible={checkIsCollapsible(fieldset.options)}
isCollapsed={!isExpanded}
>
{fieldset.fields.map((field, fieldIndex) => {
Expand Down Expand Up @@ -176,7 +182,7 @@ export default class ObjectInput extends React.PureComponent {
}

const columns = type.options && type.options.columns
const isCollapsible = type.options && (type.options.collapsable || type.options.collapsible)
const isCollapsible = checkIsCollapsible(type.options)

return (
<Fieldset
Expand Down

0 comments on commit 409f28f

Please sign in to comment.