admin-on-rest-fr05t1k
Version:
A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI
50 lines (38 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _reselect = require('reselect');
var _lodash = require('lodash.set');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getDefaultValues = function getDefaultValues(children) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var globalDefaultValue = typeof defaultValue === 'function' ? defaultValue() : defaultValue;
var defaultValueFromChildren = children.map(function (child) {
return { source: child.props.source, defaultValue: child.props.defaultValue };
}).reduce(function (prev, next) {
if (next.defaultValue != null) {
(0, _lodash2.default)(prev, next.source, typeof next.defaultValue === 'function' ? next.defaultValue() : next.defaultValue);
}
return prev;
}, {});
return (0, _extends3.default)({}, globalDefaultValue, defaultValueFromChildren, data);
};
var getChildren = function getChildren(state, props) {
return props.children;
};
var getRecord = function getRecord(state, props) {
return props.record;
};
var getDefaultValue = function getDefaultValue(state, props) {
return props.defaultValue;
};
exports.default = (0, _reselect.createSelector)(getChildren, getRecord, getDefaultValue, function (children, record, defaultValue) {
return getDefaultValues(_react.Children.toArray(children), record, defaultValue);
});
module.exports = exports['default'];