diff --git a/packages/react-jss/.size-snapshot.json b/packages/react-jss/.size-snapshot.json index 699840457..894aa6351 100644 --- a/packages/react-jss/.size-snapshot.json +++ b/packages/react-jss/.size-snapshot.json @@ -1,30 +1,30 @@ { "dist/react-jss.js": { - "bundled": 169946, - "minified": 58911, - "gzipped": 19311 + "bundled": 170289, + "minified": 58963, + "gzipped": 19318 }, "dist/react-jss.min.js": { - "bundled": 112923, - "minified": 42170, - "gzipped": 14335 + "bundled": 113266, + "minified": 42222, + "gzipped": 14341 }, "dist/react-jss.cjs.js": { - "bundled": 26398, - "minified": 11532, - "gzipped": 3759 + "bundled": 25839, + "minified": 11321, + "gzipped": 3672 }, "dist/react-jss.esm.js": { - "bundled": 24901, - "minified": 10301, - "gzipped": 3602, + "bundled": 24322, + "minified": 10075, + "gzipped": 3515, "treeshaked": { "rollup": { - "code": 1838, - "import_statements": 538 + "code": 1858, + "import_statements": 558 }, "webpack": { - "code": 3436 + "code": 3490 } } } diff --git a/packages/react-jss/package.json b/packages/react-jss/package.json index db4f9fb61..efa7be42a 100644 --- a/packages/react-jss/package.json +++ b/packages/react-jss/package.json @@ -45,6 +45,7 @@ "is-in-browser": "^1.1.3", "jss": "^10.3.0", "jss-preset-default": "^10.3.0", + "memoize-one": "^5.1.1", "prop-types": "^15.6.0", "shallow-equal": "^1.2.0", "theming": "3.2.0", diff --git a/packages/react-jss/src/utils/memoizeOne.js b/packages/react-jss/src/utils/memoizeOne.js deleted file mode 100644 index b55b60dc7..000000000 --- a/packages/react-jss/src/utils/memoizeOne.js +++ /dev/null @@ -1,34 +0,0 @@ -// @flow - -type Result = any -type Args = any -type ComputeFn = (...args: Args) => Result -type MemoFn = (...args: Args) => Result - -const memoize = (fn: ComputeFn): MemoFn => { - let lastArgs - let lastResult - - return (...args: Args): Result => { - if (Array.isArray(lastArgs) && args.length === lastArgs.length) { - let isSame = true - - for (let i = 0; i < args.length; i++) { - if (args[i] !== lastArgs[i]) { - isSame = false - } - } - - if (isSame) { - return lastResult - } - } - - lastArgs = args - lastResult = fn(...args) - - return lastResult - } -} - -export default memoize diff --git a/packages/react-jss/src/withStyles.js b/packages/react-jss/src/withStyles.js index e71ba8413..857cd8c4c 100644 --- a/packages/react-jss/src/withStyles.js +++ b/packages/react-jss/src/withStyles.js @@ -4,9 +4,9 @@ import hoistNonReactStatics from 'hoist-non-react-statics' import {type StyleSheet, type Classes} from 'jss' import {ThemeContext} from 'theming' +import memoize from 'memoize-one' import type {HOCProps, HOCOptions, Styles, InnerProps, DynamicRules} from './types' import getDisplayName from './getDisplayName' -import memoize from './utils/memoizeOne' import mergeClasses from './utils/mergeClasses' import JssContext from './JssContext' import getSheetIndex from './utils/getSheetIndex' diff --git a/yarn.lock b/yarn.lock index 2c6b43be8..1805e8f33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6323,6 +6323,11 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^1.1.0" +memoize-one@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" + integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== + memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"