UNPKG

react-responsive-grid

Version:
87 lines (82 loc) 2.27 kB
// Generated by CoffeeScript 1.10.0 var React, objectAssign, spanCalculate; React = require('react'); objectAssign = require('object-assign'); spanCalculate = require('../utils/SpanCalculate'); module.exports = React.createClass({ displayName: "Span", propTypes: { context: React.PropTypes.object, columns: React.PropTypes.number, at: React.PropTypes.number, pre: React.PropTypes.number, post: React.PropTypes.number, squish: React.PropTypes.number, last: React.PropTypes.bool, "break": React.PropTypes.bool }, getDefaultProps: function() { return { at: 0, pre: 0, post: 0, squish: 0, last: false, first: false, "break": false }; }, renderChildren: function() { return React.Children.map(this.props.children, (function(_this) { return function(child) { var ref; if ((child != null ? (ref = child.type) != null ? ref.displayName : void 0 : void 0) === "Span") { return React.cloneElement(child, { context: { columns: _this.props.columns, gutterRatio: _this.props.context.gutterRatio } }); } else { return child; } }; })(this)); }, render: function() { var props, style; style = spanCalculate({ contextColumns: this.props.context.columns, gutterRatio: this.props.context.gutterRatio, columns: this.props.columns, at: this.props.at, pre: this.props.pre, post: this.props.post, squish: this.props.squish, last: this.props.last, "break": this.props["break"] }); style = objectAssign(style, this.props.style); props = objectAssign({}, this.props, { "style": style }); delete props.at; delete props["break"]; delete props.columns; delete props.context; delete props.first; delete props.last; delete props.post; delete props.pre; delete props.squish; delete props.style; return React.createElement("div", Object.assign({}, props, { "style": style }), this.renderChildren(), React.createElement("span", { "style": { display: 'block', clear: 'both' } }, ' ')); } });