UNPKG

ca-ui-react-themer-jss

Version:

Themer middleware for React JSS integration

50 lines (38 loc) 1.54 kB
'use strict'; 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);