ca-ui-react-themer-jss
Version:
Themer middleware for React JSS integration
50 lines (38 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapPropsDecorator = exports.mapper = undefined;
var _mapProps = require('recompose/mapProps');
var _mapProps2 = _interopRequireDefault(_mapProps);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
var _object = require('object.omit');
var _object2 = _interopRequireDefault(_object);
var _caUiThemer = require('ca-ui-themer');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Property mapper to trasform ReactJSS output props into themer props.
*
* @param {Object} props Input props from ReactJSS
* @return {Object} Output props to be passed to themed component
*/
/**
* Copyright (c) 2017 CA. All rights reserved.
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/
var mapper = exports.mapper = function mapper(props) {
var styles = void 0;
if (props.sheet && props.sheet.classes) {
styles = props.sheet.classes;
} else if (props.classes) {
styles = props.classes;
} else {
return props;
}
var resolvedTheme = (0, _objectAssign2.default)({}, props.theme, { styles: styles });
return (0, _caUiThemer.mapThemeProps)((0, _object2.default)(props, ['sheet', 'classes']), resolvedTheme);
};
// react decorator based on prop-mapper function
var mapPropsDecorator = exports.mapPropsDecorator = (0, _mapProps2.default)(mapper);