material-ui
Version:
Material Design UI components built with React
45 lines (36 loc) • 900 B
JavaScript
;
var React = require('react');
var List = require('./list');
var ListNested = React.createClass({
displayName: 'ListNested',
propTypes: {
nestedLevel: React.PropTypes.number,
open: React.PropTypes.bool
},
getDefaultProps: function getDefaultProps() {
return {
nestedLevel: 1,
open: false
};
},
render: function render() {
var nestedLevel = this.props.nestedLevel;
var style = {
nestedList: {}
};
if (!this.props.open) {
style.nestedList.display = 'none';
}
return React.createElement(
List,
{ style: style.nestedList },
React.Children.map(this.props.children, function (child) {
if (React.isValidElement(child)) {
return React.cloneElement(child, { nestedLevel: nestedLevel + 1 });
}
return child;
})
);
}
});
module.exports = ListNested;