From 6303a57e8664f8a2ce3b388b71caa5f40f7231fd Mon Sep 17 00:00:00 2001 From: Vesa Luusua Date: Mon, 9 Apr 2018 16:31:31 +0300 Subject: [PATCH] Update React to 16.3.1 --- package.json | 17 +- .../EditListingPhotosForm.test.js | 4 - src/index.js | 16 +- src/util/test-helpers.js | 2 +- yarn.lock | 156 +++++++++--------- 5 files changed, 101 insertions(+), 94 deletions(-) diff --git a/package.json b/package.json index cb161307..b0aed6af 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "classnames": "^2.2.5", "compression": "^1.7.2", "cookie-parser": "^1.4.3", + "core-js": "^2.5.0", "decimal.js": "7.2.4", "dotenv": "4.0.0", "dotenv-expand": "4.0.1", @@ -26,21 +27,21 @@ "path-to-regexp": "^2.2.0", "prop-types": "^15.6.1", "query-string": "^5.1.1", + "raf": "3.4.0", "raven": "^2.4.2", "raven-js": "^3.24.0", - "react": "^15.6.2", - "react-addons-shallow-compare": "^15.6.2", + "react": "^16.3.1", "react-dates": "^16.0.0", - "react-dom": "^15.6.2", + "react-dom": "^16.3.1", "react-google-maps": "^9.4.5", "react-helmet": "^5.2.0", "react-intl": "^2.4.0", "react-moment-proptypes": "^1.5.0", - "react-redux": "^5.0.6", + "react-redux": "^5.0.7", "react-router-dom": "^4.2.2", "react-sortable-hoc": "^0.6.8", "redux": "^3.7.2", - "redux-form": "^6.8.0", + "redux-form": "^7.3.0", "redux-thunk": "^2.2.0", "sanitize.css": "^5.0.0", "sharetribe-scripts": "1.1.2", @@ -51,14 +52,12 @@ }, "devDependencies": { "enzyme": "^3.3.0", - "enzyme-adapter-react-15": "^1.0.5", + "enzyme-adapter-react-16": "^1.1.1", "enzyme-to-json": "^3.3.3", "nodemon": "^1.17.2", "nsp": "^3.2.1", "nsp-preprocessor-yarn": "^1.0.1", - "prettier": "^1.11.1", - "react-addons-test-utils": "^15.6.2", - "react-test-renderer": "^15.6.2" + "prettier": "^1.11.1" }, "scripts": { "clean": "rm -rf build/*", diff --git a/src/containers/EditListingPhotosForm/EditListingPhotosForm.test.js b/src/containers/EditListingPhotosForm/EditListingPhotosForm.test.js index 729bb2ec..7d469e57 100644 --- a/src/containers/EditListingPhotosForm/EditListingPhotosForm.test.js +++ b/src/containers/EditListingPhotosForm/EditListingPhotosForm.test.js @@ -1,7 +1,3 @@ -// NOTE: renderdeep doesn't work due to -// "Invariant Violation: getNodeFromInstance: Invalid argument." -// refs and findDOMNode are not supported by react-test-renderer -// (react-sortable-hoc uses them) import React from 'react'; import { renderShallow } from '../../util/test-helpers'; import { fakeIntl, fakeFormProps } from '../../util/test-data'; diff --git a/src/index.js b/src/index.js index cb28783a..9c0a3d05 100644 --- a/src/index.js +++ b/src/index.js @@ -11,6 +11,12 @@ * Note that this file is required for the build process. */ +// React 16 depends on the collection types Map and Set, as well as requestAnimationFrame. +// https://reactjs.org/docs/javascript-environment-requirements.html +import 'core-js/es6/map'; +import 'core-js/es6/set'; +import 'raf/polyfill'; + import React from 'react'; import ReactDOM from 'react-dom'; import Decimal from 'decimal.js'; @@ -30,7 +36,7 @@ import './marketplaceIndex.css'; const { BigDecimal } = sdkTypes; -const render = store => { +const render = (store, shouldHydrate) => { // If the server already loaded the auth information, render the app // immediately. Otherwise wait for the flag to be loaded and render // when auth information is present. @@ -39,7 +45,11 @@ const render = store => { info .then(() => { store.dispatch(fetchCurrentUser()); - ReactDOM.render(, document.getElementById('root')); + if (shouldHydrate) { + ReactDOM.hydrate(, document.getElementById('root')); + } else { + ReactDOM.render(, document.getElementById('root')); + } }) .catch(e => { log.error(e, 'browser-side-render-failed'); @@ -88,7 +98,7 @@ if (typeof window !== 'undefined') { const store = configureStore(initialState, sdk, analyticsHandlers); require('./util/polyfills'); - render(store); + render(store, !!window.__PRELOADED_STATE__); if (config.dev) { // Expose stuff for the browser REPL diff --git a/src/util/test-helpers.js b/src/util/test-helpers.js index fdcf0ef0..2861c47b 100644 --- a/src/util/test-helpers.js +++ b/src/util/test-helpers.js @@ -1,7 +1,7 @@ import React from 'react'; import { mapValues } from 'lodash'; import Enzyme, { shallow, mount } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; import toJson from 'enzyme-to-json'; import { IntlProvider, addLocaleData } from 'react-intl'; import en from 'react-intl/locale-data/en'; diff --git a/yarn.lock b/yarn.lock index fecca21c..c16fb713 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1958,14 +1958,6 @@ 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.6.0: - version "15.6.2" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2511,17 +2503,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: @@ -2593,9 +2587,9 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: es6-symbol "~3.1.1" next-tick "1" -es6-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.1.tgz#eeb3e280f57e2ec48d72a9fccaf6247d3c1f5719" +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" @@ -3122,18 +3116,6 @@ fbjs@^0.8.4: setimmediate "^1.0.5" ua-parser-js "^0.7.9" -fbjs@^0.8.9: - version "0.8.14" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3740,14 +3722,14 @@ hoek@4.x.x: version "4.2.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" -hoist-non-react-statics@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - -hoist-non-react-statics@^2.2.1, hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.3.1: +hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" +hoist-non-react-statics@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -4047,6 +4029,12 @@ invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2: dependencies: loose-envify "^1.0.0" +invariant@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -4953,7 +4941,11 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.17.3, lodash-es@^4.2.0, lodash-es@^4.2.1: +lodash-es@^4.17.5: + version "4.17.8" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.8.tgz#6fa8c8c5d337481df0bdf1c0d899d42473121e45" + +lodash-es@^4.2.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" @@ -5030,7 +5022,7 @@ lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.1.1, lodash@^4.12.0, lodash@^4.15.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.1.1, lodash@^4.12.0, lodash@^4.15.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -6616,7 +6608,7 @@ prop-types-exact@^1.1.1: has "^1.0.1" object.assign "^4.0.4" -prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0: +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" dependencies: @@ -6806,17 +6798,13 @@ rc@^1.1.6, rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-addons-shallow-compare@^15.5.2, react-addons-shallow-compare@^15.6.2: +react-addons-shallow-compare@^15.5.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-dates@^16.0.0: version "16.0.1" resolved "https://registry.yarnpkg.com/react-dates/-/react-dates-16.0.1.tgz#0522e65c57b1a5dd685160127e29dff8bb41e573" @@ -6857,14 +6845,14 @@ react-dev-utils@^5.0.0: strip-ansi "3.0.1" text-table "0.2.0" -react-dom@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" +react-dom@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.3.1.tgz#6a3c90a4fb62f915bdbcf6204422d93a7d4ca573" 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-error-overlay@^4.0.0: version "4.0.0" @@ -6904,6 +6892,10 @@ react-intl@^2.4.0: intl-relativeformat "^2.0.0" invariant "^2.1.1" +react-is@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.3.1.tgz#ee66e6d8283224a83b3030e110056798488359ba" + react-moment-proptypes@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.5.0.tgz#4a448cd6479efc5dd509283f361f3753c3abe60e" @@ -6916,16 +6908,25 @@ react-portal@^4.1.0: dependencies: prop-types "^15.5.8" -react-redux@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946" +react-reconciler@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.7.0.tgz#9614894103e5f138deeeb5eabaf3ee80eb1d026d" dependencies: - hoist-non-react-statics "^2.2.1" - invariant "^2.0.0" - lodash "^4.2.0" - lodash-es "^4.2.0" + fbjs "^0.8.16" loose-envify "^1.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" + +react-redux@^5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" + dependencies: + hoist-non-react-statics "^2.5.0" + invariant "^2.0.0" + lodash "^4.17.5" + lodash-es "^4.17.5" + loose-envify "^1.1.0" + prop-types "^15.6.0" react-router-dom@^4.2.2: version "4.2.2" @@ -6966,12 +6967,14 @@ react-sortable-hoc@^0.6.8: lodash "^4.12.0" prop-types "^15.5.7" -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: + version "16.3.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.3.1.tgz#d9257936d8535bd40f57f3d5a84e7b0452fb17f2" 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-is "^16.3.1" react-with-direction@^1.1.0: version "1.1.0" @@ -7003,15 +7006,14 @@ react-with-styles@^2.2.0: prop-types "^15.6.0" react-with-direction "^1.1.0" -react@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" +react@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.3.1.tgz#4a2da433d471251c69b6033ada30e2ed1202cfd8" 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-cache@^1.0.0: version "1.0.0" @@ -7146,18 +7148,18 @@ reduce-function-call@^1.0.1, reduce-function-call@^1.0.2: dependencies: balanced-match "^0.4.2" -redux-form@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.8.0.tgz#ff1b590b59f987d7e3ff080d752f7120bfe42af3" +redux-form@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-7.3.0.tgz#b92ef1639c86a6009b0821aacfc80ad8b5ac8c05" dependencies: deep-equal "^1.0.1" - es6-error "^4.0.0" - hoist-non-react-statics "^1.2.0" - invariant "^2.2.2" + es6-error "^4.1.1" + hoist-non-react-statics "^2.5.0" + invariant "^2.2.3" is-promise "^2.1.0" - lodash "^4.17.3" - lodash-es "^4.17.3" - prop-types "^15.5.9" + lodash "^4.17.5" + lodash-es "^4.17.5" + prop-types "^15.6.1" redux-thunk@^2.2.0: version "2.2.0"