redux-modules
Version:
A library for defining clear, boilerplate free Redux reducers.
39 lines (30 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createFinalPropsSelector = undefined;
var _mergeProps = require('./mergeProps');
var _mergeProps2 = _interopRequireDefault(_mergeProps);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var createFinalPropsSelector = exports.createFinalPropsSelector = function createFinalPropsSelector(_ref) {
var getState = _ref.getState,
getDispatch = _ref.getDispatch;
var lastOwn = void 0;
var lastState = void 0;
var lastMerged = void 0;
var dispatch = void 0;
return function (state, props) {
var nextOwn = props;
var nextState = getState(state, props);
if (typeof dispatch === 'undefined') {
dispatch = getDispatch(props);
}
if (lastOwn !== nextOwn || lastState !== nextState) {
lastMerged = (0, _mergeProps2.default)(nextState, dispatch, nextOwn);
lastOwn = nextOwn;
lastState = nextState;
}
return lastMerged;
};
};
exports.default = createFinalPropsSelector;