UNPKG

619 BJavaScriptView Raw
1/*
2 Copyright (C) 2017 Piotr Tomasz Monarski.
3 Licensed under the MIT License (MIT), see
4 https://github.com/Monar/react-immutable-pure-component
5*/
6
7import React from 'react';
8import { is } from 'immutable';
9
10
11export class ImmutablePureComponent extends React.Component {
12
13 shouldComponentUpdate(nextProps, nextState) {
14 const state = this.state || {};
15
16 return !(this.updateOnProps || Object.keys(nextProps)).every((p) => is(nextProps[p], this.props[p]))
17 || !(this.updateOnStates || Object.keys(nextState || {})).every((s) => is(nextState[s], state[s]));
18 }
19}
20
21export default ImmutablePureComponent;