grid-styletr
Version:
Responsive React grid system built with styletron-react
43 lines (34 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styletronReactCompose = require('styletron-react-compose');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (component) {
for (var _len = arguments.length, styles = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
styles[_key - 1] = arguments[_key];
}
return (0, _styletronReactCompose.styled)(function (props, _ref) {
var _ref$theme = _ref.theme,
theme = _ref$theme === undefined ? {} : _ref$theme;
return styles.map(function (style) {
return typeof style === 'function' ? style(_extends({}, props, { theme: theme })) : style;
}).filter(function (x) {
return !!x;
}).reduce(function (res, styles) {
Object.keys(styles).forEach(function (key) {
var style = styles[key];
if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) === 'object' && res[key]) {
Object.assign(res[key], style);
} else {
res[key] = style;
}
});
return res;
}, {});
}, component);
};