react-redux-setstate
Version:
A HOC that overrides the React setState API to use Redux for storing component state.
46 lines (34 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SET_STATE = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
exports.setState = setState;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SET_STATE = exports.SET_STATE = '@@react-redux-setstate/UPDATE_COMPONENT_STATE';
function setState(updater, componentKey, element) {
var initializing = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var currentState = element.state || {};
var newState = void 0;
if ((typeof updater === 'undefined' ? 'undefined' : (0, _typeof3.default)(updater)) === 'object' && updater !== null) {
newState = (0, _extends3.default)({}, currentState, updater);
} else if (typeof updater === 'function') {
// todo: defer until all previous queueds are done -- will require a subscriber
newState = updater(currentState, element.props);
} else {
throw new Error('setState must be passed an object or function');
}
return {
type: SET_STATE,
payload: {
componentKey: componentKey,
newState: newState,
initializing: initializing
}
};
}
//# sourceMappingURL=actions.js.map