attributes-kit
Version:
React component for MSON rendering
61 lines (50 loc) • 1.29 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import Radium from 'radium';
import merge from 'lodash/merge';
import Column from '../Column/Column';
import ObjectSample from '../ObjectSample/ObjectSample';
import Row from '../Row/Row';
import {
hasSamples,
} from '../../Modules/ElementUtils/ElementUtils';
class ObjectSamples extends React.Component {
static propTypes = {
element: PropTypes.object,
style: PropTypes.object,
collapseByDefault: PropTypes.bool,
};
get style() {
const style = {};
return merge(style, this.props.style || {});
}
render() {
if (!this.props.element) {
return false;
}
if (!hasSamples(this.props.element)) {
return false;
}
const samples = this.props.element.attributes.samples;
return (
<Row>
<Column>
{
samples.map((sample, index) =>
<ObjectSample
element={this.props.element}
sample={sample}
sampleIndex={index}
samples={samples}
key={index}
collapseByDefault={this.props.collapseByDefault}
/>
)
}
</Column>
</Row>
);
}
}
export default ObjectSamples;