silverstripe-framework/admin/client/src/components/CompositeField/CompositeField.js

37 lines
747 B
JavaScript

import React from 'react';
import SilverStripeComponent from 'lib/SilverStripeComponent';
class CompositeField extends SilverStripeComponent {
getLegend() {
return (
this.props.data.tag === 'fieldset' &&
this.props.data.legend &&
<legend>{this.props.data.legend}</legend>
);
}
render() {
const legend = this.getLegend();
const Tag = this.props.data.tag;
return (
<Tag className={this.props.extraClass}>
{legend}
{this.props.children}
</Tag>
);
}
}
CompositeField.propTypes = {
tag: React.PropTypes.string,
legend: React.PropTypes.string,
extraClass: React.PropTypes.string,
};
CompositeField.defaultProps = {
tag: 'div',
};
export default CompositeField;