UNPKG

react-cqtoolbox

Version:

[![Travis][build-badge]][build] [![npm package][npm-badge]][npm] [![Coveralls][coveralls-badge]][coveralls]

31 lines (24 loc) 900 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shallowEqual = shallowEqual; function shallowEqual(prev, next) { if (prev === next) return true; var prevKeys = Object.keys(prev); var nextKeys = Object.keys(next); if (prevKeys.length !== nextKeys.length) return false; return prevKeys.every(function (key) { return prev.hasOwnProperty(key) && prev[key] === next[key]; }); } function PureRender(Component) { Component.prototype.shouldComponentUpdate = function (nextProps, nextState) { return PureRender.shouldComponentUpdate(nextProps, nextState, this.props, this.state); }; return Component; } PureRender.shouldComponentUpdate = function (nextProps, nextState, preProps, preState) { return !shallowEqual(preProps, nextProps) || !shallowEqual(preState, nextState); }; exports.default = PureRender;