{"bugs":{"url":"https://github.com/Monar/react-immutable-pure-component/issues"},"dist":{"shasum":"3de0a602c0e4b1afadb1daa42bd4b98bce96a358","tarball":"https://registry.npmjs.org/react-immutable-pure-component/-/react-immutable-pure-component-2.0.0.tgz","fileCount":6,"integrity":"sha512-emF/q8PhEnKzihkMKPP2GuxJTTn0tYxCND8y2lDVEn6xiq10cDBaTa6SKy5KxCChS8j4pDEl/S7ZajppxldGDg==","signatures":[{"sig":"MEUCIQDqTe1X70AbLML0YKXl0KJ1GD2eKlD9XNc3RK245YK2hQIgEeNdyOT6PVkv0isFSrAVmOEj0XD77wfctOEKLFPKJ+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMjAhCRA9TVsSAnZWagAAII8P/j5HGFlFig+NGjhcdb2I\n1I1rhqVlGToSwIFD6WDiIpcntcrbsCnolZTBrFPK7VDpL3p+tZiON5sRqy7V\n2DLu4dn9ZysOdYs6FzT1IIPvr5vWhKmm48QEA/tTGqeuRFl+TNBTI9CtrBWb\nTWpxWWJ1m0El3HfKnPIr2mOSDnZrBi4N6lrQZriJ5GfTK7K/OboH1SRGkwa3\nqhTRoTs2KU9SkYpBA/nRT1cHMdOuVcJ3+DzgTTsURqI/qXTWhlgXeWLpnAAk\nlnCTsv/AWSnYJU96W2Bt3mYL07ImcGFZAXz0kZffkTH1MkBcE52cuC6eJEiC\nqul21D42xyvah6Kfpt3DjOq26e6Oo5bZTG0nzFmKdaSL0304wrVQFgqngril\nPYVh9XYuuoGvM72kwaB16iYBcRMpyhOjUEQlshDfP7fpINXZ0Bq1FeEnMqBW\nojip6jKyMflWOroImiEN5eRXCnXhcMbyqlD45vUapgYFAccyu9oCokuqwYBa\nfOM3HUe0pBDvLOIDRLAJDKIgMBwNQcQlYO0a9Z1hgMIj1lLbOv8YyQyetDa+\nXFgNMQCw5HtfVHlBZjD2ISDDGN28z1J/OvUnES/MPed70MEBkk261r8j0/IC\nsa3vE9zR3ZQMSyhWXVdiqn4lo4nP/kgyd1EK/rSUjCwHwyePi4/oYwTth0Po\nCHio\r\n=WymL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"react-immutable-pure-component.cjs.js","name":"react-immutable-pure-component","files":["types","react-immutable-pure-component.js","react-immutable-pure-component.cjs.js"],"types":"types/react-immutable-pure-component.d.ts","author":{"name":"Piotr Tomasz Monarski"},"module":"react-immutable-pure-component.js","readme":"[![npm version](https://badge.fury.io/js/react-immutable-pure-component.svg)](https://badge.fury.io/js/react-immutable-pure-component)\n\n# ImmutablePureComponent\n\nUnfortunately `React.PureComponent` is not embracing `Immutable.js` to it full potential. So here is my solution to this problem.\n[npm package](https://www.npmjs.com/package/react-immutable-pure-component) is\nparsed with babel so feel safe to use it from package repository or just copy\nit to your project and go from here.\n\n[Here](https://monar.github.io/react-immutable-pure-component/) you will find a simple example of a problem it's solving.\n\nThe `ImmutablePureComponent` extends component functionality by introducing:\n* `updateOnProps`\n* `updateOnStates`\n\nWith those properties you can specify\nlist of props or states that will be checked for changes. If value is\n`undefined` (default) then all `props` and `state` will be checked, otherwise\narray of strings is expected.\n\nThis way component can react to property  changes that matters. Useful when\npassing lambda function like this: `<Component onChange={(e) =>\ndoWhatEver(e)}/> `, that otherwise would trigger update every time.\n\n```js\n/*\n  Copyright (C) 2017 Piotr Tomasz Monarski.\n  Licensed under the MIT License (MIT), see\n  https://github.com/Monar/react-immutable-pure-component\n*/\n\nimport React from 'react';\nimport { is } from 'immutable';\n\n\nexport class ImmutablePureComponent extends React.Component {\n\n  shouldComponentUpdate(nextProps, nextState = {}) {\n    const state = this.state || {};\n\n    return !(this.updateOnProps || Object.keys({...nextProps, ...this.props})).every((p) => is(nextProps[p], this.props[p]))\n      || !(this.updateOnStates || Object.keys({ ...nextState, ...state})).every((s) => is(nextState[s], state[s]));\n  }\n}\n\nexport default ImmutablePureComponent;\n```\n","gitHead":"5f8fad099ea6f9d340f6ee9c1a13c7697a8c6d40","license":"MIT","scripts":{"test":"jest","build":"rollup -c ./rollup.config.js"},"_npmUser":{"name":"mastermonar","email":"dev@monarski.pl"},"homepage":"https://github.com/Monar/react-immutable-pure-component#readme","keywords":["react","immutable","pure","component","PureComponent"],"deprecated":"This package is version 1 publish as es6 code","repository":{"url":"git+https://github.com/Monar/react-immutable-pure-component.git","type":"git"},"_npmVersion":"6.1.0","description":"React PureComponent implementation embracing Immutable.js","directories":{},"maintainers":[{"name":"mastermonar","email":"dev@monarski.pl"}],"_nodeVersion":"10.5.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"23.2.0","react":"16.4.1","rollup":"0.61.2","immutable":"3.8.2","react-dom":"16.4.1","react-test-renderer":"16.4.1"},"peerDependencies":{"react":"^15 || ^16","immutable":"^3 || ^4 || ^4.0.0-rc.0","react-dom":"^15 || ^16"},"_npmOperationalInternal":{"tmp":"tmp/react-immutable-pure-component_2.0.0_1530015776787_0.6137217110343578","host":"s3://npm-registry-packages"},"_id":"react-immutable-pure-component@2.0.0","version":"2.0.0"}