UNPKG

react-redux

Version:

Official React bindings for Redux

52 lines (41 loc) 1.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.defaultMergeProps = defaultMergeProps; exports.wrapMergePropsFunc = wrapMergePropsFunc; exports.whenMergePropsIsFunction = whenMergePropsIsFunction; exports.whenMergePropsIsOmitted = whenMergePropsIsOmitted; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _verifyPlainObject = _interopRequireDefault(require("../utils/verifyPlainObject")); function defaultMergeProps(stateProps, dispatchProps, ownProps) { return (0, _extends2.default)({}, ownProps, stateProps, dispatchProps); } function wrapMergePropsFunc(mergeProps) { return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) { let hasRunOnce = false; let mergedProps; return function mergePropsProxy(stateProps, dispatchProps, ownProps) { const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); if (hasRunOnce) { if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; } else { hasRunOnce = true; mergedProps = nextMergedProps; if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject.default)(mergedProps, displayName, 'mergeProps'); } return mergedProps; }; }; } function whenMergePropsIsFunction(mergeProps) { return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; } function whenMergePropsIsOmitted(mergeProps) { return !mergeProps ? () => defaultMergeProps : undefined; } var _default = [whenMergePropsIsFunction, whenMergePropsIsOmitted]; exports.default = _default;