diff --git a/package.json b/package.json index 460130d37..b5537be36 100644 --- a/package.json +++ b/package.json @@ -60,10 +60,11 @@ "classnames": "^2.2.3", "complex-matcher": "^0.1.1", "cookies-js": "^1.2.2", + "create-react-class": "^15.6.2", "d3": "^4.12.2", "dependency-check": "^2.9.2", "enzyme": "^3.3.0", - "enzyme-adapter-react-15": "^1.0.5", + "enzyme-adapter-react-16": "^1.1.1", "enzyme-to-json": "^3.3.0", "eslint": "^4.14.0", "eslint-config-standard": "^10.2.1", @@ -111,16 +112,14 @@ "promise-toolbox": "^0.9.5", "prop-types": "^15.6.0", "random-password": "^0.1.2", - "react": "^15.4.1", - "react-addons-shallow-compare": "^15.6.2", - "react-addons-test-utils": "^15.6.2", + "react": "^16.2.0", "react-bootstrap-4": "^0.29.1", "react-chartist": "^0.13.0", "react-copy-to-clipboard": "^5.0.1", "react-dnd": "^2.5.4", "react-dnd-html5-backend": "^2.5.4", "react-document-title": "^2.0.2", - "react-dom": "^15.4.1", + "react-dom": "^16.2.0", "react-dropzone": "^4.2.3", "react-intl": "^2.4.0", "react-key-handler": "^1.0.1", @@ -131,7 +130,7 @@ "react-select": "^1.1.0", "react-shortcuts": "^2.0.0", "react-sparklines": "1.6.0", - "react-test-renderer": "^15.6.2", + "react-test-renderer": "^16.2.0", "react-virtualized": "^8.0.8", "readable-stream": "^2.3.3", "redux": "^3.7.2", diff --git a/setup-tests.js b/setup-tests.js index 89def87f6..3d6cd1d53 100644 --- a/setup-tests.js +++ b/setup-tests.js @@ -1,4 +1,4 @@ import { configure } from 'enzyme' -import Adapter from 'enzyme-adapter-react-15' +import Adapter from 'enzyme-adapter-react-16' configure({ adapter: new Adapter() }) diff --git a/src/patch-react.js b/src/patch-react.js index f96f6f1c5..4fbcca7d8 100644 --- a/src/patch-react.js +++ b/src/patch-react.js @@ -1,7 +1,13 @@ +import createReactClass from 'create-react-class' import logError from 'log-error' +import PropTypes from 'prop-types' import React from 'react' import { assign, isFunction } from 'lodash' +// TODO: remove when all dependencies correctly supports React 16 +React.createClass = createReactClass +React.PropTypes = PropTypes + // Avoid global breakage if a component fails to render. // // Inspired by https://gist.github.com/Aldredcz/4d63b0a9049b00f54439f8780be7f0d8 diff --git a/yarn.lock b/yarn.lock index fce83f61e..fc4169c2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2181,7 +2181,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.1, create-react-class@^15.6.0: +create-react-class@^15.5.1, create-react-class@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" dependencies: @@ -2894,17 +2894,19 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -enzyme-adapter-react-15@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-15/-/enzyme-adapter-react-15-1.0.5.tgz#99f9a03ff2c2303e517342935798a6bdfbb75fac" +enzyme-adapter-react-16@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz#a8f4278b47e082fbca14f5bfb1ee50ee650717b4" dependencies: - enzyme-adapter-utils "^1.1.0" + enzyme-adapter-utils "^1.3.0" lodash "^4.17.4" object.assign "^4.0.4" object.values "^1.0.4" - prop-types "^15.5.10" + prop-types "^15.6.0" + react-reconciler "^0.7.0" + react-test-renderer "^16.0.0-0" -enzyme-adapter-utils@^1.1.0: +enzyme-adapter-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz#d6c85756826c257a8544d362cc7a67e97ea698c7" dependencies: @@ -6982,17 +6984,13 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-addons-shallow-compare@^15.0.2, react-addons-shallow-compare@^15.6.2: +react-addons-shallow-compare@^15.0.2: version "15.6.2" resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f" dependencies: fbjs "^0.8.4" object-assign "^4.1.0" -react-addons-test-utils@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.6.2.tgz#c12b6efdc2247c10da7b8770d185080a7b047156" - react-bootstrap-4@^0.29.1: version "0.29.1" resolved "https://registry.yarnpkg.com/react-bootstrap-4/-/react-bootstrap-4-0.29.1.tgz#32270a0473f5bd84cf447f2eebec2435e666505d" @@ -7045,14 +7043,14 @@ react-document-title@^2.0.2: prop-types "^15.5.6" react-side-effect "^1.0.2" -react-dom@^15.4.1: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" +react-dom@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" react-dropzone@^4.2.3: version "4.2.3" @@ -7119,6 +7117,15 @@ react-prop-types@^0.4.0: dependencies: warning "^3.0.0" +react-reconciler@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.7.0.tgz#9614894103e5f138deeeb5eabaf3ee80eb1d026d" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" + react-redux@^5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946" @@ -7174,12 +7181,13 @@ react-sparklines@1.6.0: dependencies: react-addons-shallow-compare "^15.0.2" -react-test-renderer@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.2.tgz#d0333434fc2c438092696ca770da5ed48037efa8" +react-test-renderer@^16.0.0-0, react-test-renderer@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.2.0.tgz#bddf259a6b8fcd8555f012afc8eacc238872a211" dependencies: - fbjs "^0.8.9" - object-assign "^4.1.0" + fbjs "^0.8.16" + object-assign "^4.1.1" + prop-types "^15.6.0" react-transition-group@^2.2.0: version "2.2.1" @@ -7201,15 +7209,14 @@ react-virtualized@^8.0.8: dom-helpers "^2.4.0 || ^3.0.0" loose-envify "^1.3.0" -react@^15.4.1: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" +react@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba" dependencies: - create-react-class "^15.6.0" - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" read-only-stream@^2.0.0: version "2.0.0"