Spaces:
Sleeping
Sleeping
| import _extends from "@babel/runtime/helpers/esm/extends"; | |
| import merge from './merge'; | |
| function compose() { | |
| for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) { | |
| styles[_key] = arguments[_key]; | |
| } | |
| var handlers = styles.reduce(function (acc, style) { | |
| style.filterProps.forEach(function (prop) { | |
| acc[prop] = style; | |
| }); | |
| return acc; | |
| }, {}); | |
| // false positive | |
| // eslint-disable-next-line react/function-component-definition | |
| var fn = function fn(props) { | |
| return Object.keys(props).reduce(function (acc, prop) { | |
| if (handlers[prop]) { | |
| return merge(acc, handlers[prop](props)); | |
| } | |
| return acc; | |
| }, {}); | |
| }; | |
| fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce(function (acc, style) { | |
| return _extends(acc, style.propTypes); | |
| }, {}) : {}; | |
| fn.filterProps = styles.reduce(function (acc, style) { | |
| return acc.concat(style.filterProps); | |
| }, []); | |
| return fn; | |
| } | |
| export default compose; |