material-ui
Version:
Material Design UI components built with React
48 lines (39 loc) • 1.05 kB
JavaScript
;
var React = require('react');
var ImmutabilityHelper = require('../utils/immutability-helper');
var List = require('./list');
var NestedList = React.createClass({
displayName: 'NestedList',
propTypes: {
nestedLevel: React.PropTypes.number,
open: React.PropTypes.bool
},
getDefaultProps: function getDefaultProps() {
return {
nestedLevel: 1,
open: false
};
},
render: function render() {
var _props = this.props;
var children = _props.children;
var open = _props.open;
var nestedLevel = _props.nestedLevel;
var style = _props.style;
var styles = {
root: {
display: open ? null : 'none'
}
};
return React.createElement(
List,
{ style: ImmutabilityHelper.merge(styles.root, style) },
React.Children.map(children, function (child) {
return React.isValidElement(child) ? React.cloneElement(child, {
nestedLevel: nestedLevel + 1
}) : child;
})
);
}
});
module.exports = NestedList;