UNPKG

@coocoon/react-awesome-query-builder

Version:

User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder

86 lines (64 loc) 2.83 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useOnPropsChanged = exports.pureShouldComponentUpdate = exports.liteShouldComponentUpdate = exports.bindActionCreators = void 0; var _react = _interopRequireDefault(require("react")); var _mapValues = _interopRequireDefault(require("lodash/mapValues")); var _stuff = require("./stuff"); var liteShouldComponentUpdate = function liteShouldComponentUpdate(self, config) { return function (nextProps, nextState) { var prevProps = self.props; var prevState = self.state; var should = nextProps != prevProps || nextState != prevState; if (should) { if (prevState == nextState && prevProps != nextProps) { var chs = []; for (var k in nextProps) { var changed = nextProps[k] != prevProps[k]; if (changed) { if (config[k] == "ignore") changed = false;else if (config[k] == "shallow_deep") changed = !(0, _stuff.shallowEqual)(nextProps[k], prevProps[k], true);else if (config[k] == "shallow") changed = !(0, _stuff.shallowEqual)(nextProps[k], prevProps[k]);else if (typeof config[k] == "function") changed = config[k](nextProps[k], prevProps[k], nextState); } if (changed) chs.push(k); } if (!chs.length) should = false; } } return should; }; }; exports.liteShouldComponentUpdate = liteShouldComponentUpdate; var pureShouldComponentUpdate = function pureShouldComponentUpdate(self) { return function (nextProps, nextState) { return !(0, _stuff.shallowEqual)(self.props, nextProps) || !(0, _stuff.shallowEqual)(self.state, nextState); }; }; exports.pureShouldComponentUpdate = pureShouldComponentUpdate; var canUseUnsafe = function canUseUnsafe() { var v = _react["default"].version.split(".").map(parseInt.bind(null, 10)); return v[0] == 16 && v[1] >= 3 || v[0] > 16; }; var useOnPropsChanged = function useOnPropsChanged(obj) { if (canUseUnsafe) { obj.UNSAFE_componentWillReceiveProps = function (nextProps) { obj.onPropsChanged(nextProps); }; } else { obj.componentWillReceiveProps = function (nextProps) { obj.onPropsChanged(nextProps); }; } }; exports.useOnPropsChanged = useOnPropsChanged; var bindActionCreators = function bindActionCreators(actionCreators, config, dispatch) { return (0, _mapValues["default"])(actionCreators, function (actionCreator) { return function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return dispatch(actionCreator.apply(void 0, [config].concat(args))); }; }); }; exports.bindActionCreators = bindActionCreators;