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 |
|
7 | import React from 'react';
|
8 | import { is } from 'immutable';
|
9 |
|
10 |
|
11 | export 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 |
|
21 | export default ImmutablePureComponent;
|