Home Reference Source

src/components/widgets/Form/FieldsetCol.jsx

import React from 'react';
import { pure } from 'recompose';
import { Col } from 'reactstrap';
import ReduxField from './ReduxField';
import FieldsetContainer from './Fieldset';

function FieldsetCol({
  col,
  defaultCol,
  colId,
  autoFocusId,
  labelPosition,
  labelWidth,
  labelAlignment,
  modelPrefix,
  form,
}) {
  return (
    <Col xs={col.size || defaultCol} key={colId} className={col.className}>
      {col.fields &&
        col.fields.map((field, i) => {
          const autoFocus = field.id && autoFocusId && field.id === autoFocusId;
          const key = 'field' + i;
          return (
            <ReduxField
              labelPosition={labelPosition}
              labelWidth={labelWidth}
              labelAlignment={labelAlignment}
              key={key}
              autoFocus={autoFocus}
              form={form}
              modelPrefix={modelPrefix}
              {...field}
            />
          );
        })}
      {col.fieldsets &&
        col.fieldsets.map((fieldset, i) => {
          const key = `set${i}`;
          return (
            <FieldsetContainer
              modelPrefix={modelPrefix}
              key={key}
              form={form}
              {...fieldset}
            />
          );
        })}
    </Col>
  );
}

export default pure(FieldsetCol);