From 506dba933ce69830feaace08aee85c38ce3e59fb Mon Sep 17 00:00:00 2001 From: Nicolas Gallagher Date: Mon, 17 Sep 2018 10:01:23 -0700 Subject: [PATCH] [change] Support React DOM 16.5 React DOM 16.5 changed unstable APIs that this project depends upon. This regression was fixed in React DOM 16.5.1 but requires React Native for Web to migrate to a different unstable API exported by React DOM. Fix #1096 Close #1106 --- package.json | 12 +- packages/benchmarks/package.json | 4 +- packages/examples/package.json | 4 +- packages/react-native-web/package.json | 6 +- .../src/exports/createElement/index.js | 6 +- packages/website/package.json | 4 +- yarn.lock | 133 +++++++++++------- 7 files changed, 98 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index c9142a92c..892a5d414 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "babel-preset-react-native": "^4.0.0", "caniuse-api": "^2.0.0", "del-cli": "^1.1.0", - "enzyme": "^3.3.0", - "enzyme-adapter-react-16": "^1.1.0", + "enzyme": "^3.6.0", + "enzyme-adapter-react-16": "^1.5.0", "enzyme-to-json": "^3.3.3", "eslint": "^4.19.1", "eslint-config-prettier": "^2.9.0", @@ -54,10 +54,10 @@ "lint-staged": "^7.1.0", "npm-run-all": "^4.1.3", "prettier": "^1.12.1", - "react": "^16.4.1", - "react-art": "^16.4.1", - "react-dom": "^16.4.1", - "react-test-renderer": "^16.4.1" + "react": "^16.5.1", + "react-art": "^16.5.1", + "react-dom": "^16.5.1", + "react-test-renderer": "^16.5.1" }, "workspaces": [ "packages/*" diff --git a/packages/benchmarks/package.json b/packages/benchmarks/package.json index a025514e3..433ffda2a 100644 --- a/packages/benchmarks/package.json +++ b/packages/benchmarks/package.json @@ -14,8 +14,8 @@ "fela": "^6.1.9", "glamor": "2.20.40", "radium": "^0.24.0", - "react": "^16.4.1", - "react-dom": "^16.4.1", + "react": "^16.5.1", + "react-dom": "^16.5.1", "react-fela": "^7.3.1", "react-jss": "^8.6.1", "react-native-web": "0.8.11", diff --git a/packages/examples/package.json b/packages/examples/package.json index ca8265587..5dadb027e 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "babel-runtime": "^6.26.0", - "react": "^16.4.1", - "react-dom": "^16.4.1", + "react": "^16.5.1", + "react-dom": "^16.5.1", "react-native-web": "0.8.11" }, "devDependencies": { diff --git a/packages/react-native-web/package.json b/packages/react-native-web/package.json index 77707ff23..616c49131 100644 --- a/packages/react-native-web/package.json +++ b/packages/react-native-web/package.json @@ -25,9 +25,9 @@ "react-timer-mixin": "^0.13.3" }, "peerDependencies": { - "react": "16.4.x", - "react-art": "16.4.x", - "react-dom": "16.4.x" + "react": ">=16.5.1", + "react-art": ">=16.5.1", + "react-dom": ">=16.5.1" }, "author": "Nicolas Gallagher", "license": "MIT", diff --git a/packages/react-native-web/src/exports/createElement/index.js b/packages/react-native-web/src/exports/createElement/index.js index db3c914b8..6f8d32242 100644 --- a/packages/react-native-web/src/exports/createElement/index.js +++ b/packages/react-native-web/src/exports/createElement/index.js @@ -9,14 +9,12 @@ import AccessibilityUtil from '../../modules/AccessibilityUtil'; import createDOMProps from '../../modules/createDOMProps'; +import { injectEventPluginsByName } from 'react-dom/unstable-native-dependencies'; import normalizeNativeEvent from '../../modules/normalizeNativeEvent'; import React from 'react'; -import ReactDOM from 'react-dom'; import ResponderEventPlugin from '../../modules/ResponderEventPlugin'; -const { EventPluginHub } = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - -EventPluginHub.injection.injectEventPluginsByName({ +injectEventPluginsByName({ ResponderEventPlugin }); diff --git a/packages/website/package.json b/packages/website/package.json index 0649335f2..300b6afbe 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -10,8 +10,8 @@ "dependencies": { "@storybook/addon-options": "^3.4.3", "@storybook/react": "^3.4.3", - "react": "^16.4.1", - "react-dom": "^16.4.1", + "react": "^16.5.1", + "react-dom": "^16.5.1", "react-native-web": "0.8.11" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index de33bca97..5919114f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3568,25 +3568,25 @@ envinfo@^5.7.0: version "5.10.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.10.0.tgz#503a9774ae15b93ea68bdfae2ccd6306624ea6df" -enzyme-adapter-react-16@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz#a8f4278b47e082fbca14f5bfb1ee50ee650717b4" +enzyme-adapter-react-16@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz#50af8d76a45fe0915de932bd95d34cdca75c0be3" dependencies: - enzyme-adapter-utils "^1.3.0" - lodash "^4.17.4" - object.assign "^4.0.4" + enzyme-adapter-utils "^1.8.0" + function.prototype.name "^1.1.0" + object.assign "^4.1.0" object.values "^1.0.4" - prop-types "^15.6.0" - react-reconciler "^0.7.0" + prop-types "^15.6.2" + react-is "^16.4.2" react-test-renderer "^16.0.0-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" +enzyme-adapter-utils@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz#ee9f07250663a985f1f2caaf297720787da559f1" dependencies: - lodash "^4.17.4" - object.assign "^4.0.4" - prop-types "^15.6.0" + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + prop-types "^15.6.2" enzyme-to-json@^3.3.3: version "3.3.4" @@ -3594,26 +3594,29 @@ enzyme-to-json@^3.3.3: dependencies: lodash "^4.17.4" -enzyme@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.3.0.tgz#0971abd167f2d4bf3f5bd508229e1c4b6dc50479" +enzyme@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.6.0.tgz#d213f280a258f61e901bc663d4cc2d6fd9a9dec8" dependencies: + array.prototype.flat "^1.2.1" cheerio "^1.0.0-rc.2" - function.prototype.name "^1.0.3" - has "^1.0.1" + function.prototype.name "^1.1.0" + has "^1.0.3" is-boolean-object "^1.0.0" - is-callable "^1.1.3" + is-callable "^1.1.4" is-number-object "^1.0.3" is-string "^1.0.4" is-subset "^0.1.1" - lodash "^4.17.4" - object-inspect "^1.5.0" + lodash.escape "^4.0.1" + lodash.isequal "^4.5.0" + object-inspect "^1.6.0" object-is "^1.0.1" object.assign "^4.1.0" object.entries "^1.0.4" object.values "^1.0.4" raf "^3.4.0" rst-selector-parser "^2.2.3" + string.prototype.trim "^1.1.2" errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -3634,7 +3637,7 @@ error@^7.0.2: string-template "~0.2.1" xtend "~4.0.0" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0, es-abstract@^1.9.0: +es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0, es-abstract@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" dependencies: @@ -4414,7 +4417,7 @@ function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -function.prototype.name@^1.0.3, function.prototype.name@^1.1.0: +function.prototype.name@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" dependencies: @@ -5231,7 +5234,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.1, is-callable@^1.1.3: +is-callable@^1.1.1, is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -6363,6 +6366,10 @@ lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" +lodash.escape@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" + lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -6375,6 +6382,10 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" @@ -7111,7 +7122,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.5.0: +object-inspect@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" @@ -7129,7 +7140,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4, object.assign@^4.1.0: +object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" dependencies: @@ -8097,16 +8108,16 @@ react-addons-shallow-compare@^15.6.2: fbjs "^0.8.4" object-assign "^4.1.0" -react-art@^16.4.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/react-art/-/react-art-16.4.1.tgz#3544c13038d7ddfe8b1cc1170b02d99492c03b50" +react-art@^16.5.1: + version "16.5.1" + resolved "https://registry.yarnpkg.com/react-art/-/react-art-16.5.1.tgz#534a265dafc5c0e310da9ef9afbf76d6e221be56" dependencies: art "^0.10.1" create-react-class "^15.6.2" - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + schedule "^0.4.0" react-deep-force-update@^1.0.0: version "1.1.1" @@ -8147,14 +8158,14 @@ react-docgen@^3.0.0-beta11: node-dir "^0.1.10" recast "^0.12.6" -react-dom@^16.4.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.1.tgz#7f8b0223b3a5fbe205116c56deb85de32685dad6" +react-dom@^16.5.1: + version "16.5.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.1.tgz#29d0c5a01ed3b6b4c14309aa91af6ec4eb4f292c" dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + schedule "^0.4.0" react-error-overlay@^4.0.0: version "4.0.0" @@ -8204,6 +8215,10 @@ react-is@^16.3.1, react-is@^16.4.1: version "16.4.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.1.tgz#d624c4650d2c65dbd52c72622bbf389435d9776e" +react-is@^16.4.2, react-is@^16.5.1: + version "16.5.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.1.tgz#c6e8734fd548a22e1cef4fd0833afbeb433b85ee" + react-jss@^8.6.1: version "8.6.1" resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-8.6.1.tgz#a06e2e1d2c4d91b4d11befda865e6c07fbd75252" @@ -8234,15 +8249,6 @@ react-proxy@^1.1.7: lodash "^4.6.1" react-deep-force-update "^1.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-split-pane@^0.1.77: version "0.1.81" resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.81.tgz#b1e8b82e0a6edd10f18fd639a5f512db3cbbb4e6" @@ -8258,7 +8264,7 @@ react-style-proptype@^3.0.0: dependencies: prop-types "^15.5.4" -react-test-renderer@^16.0.0-0, react-test-renderer@^16.4.1: +react-test-renderer@^16.0.0-0: version "16.4.1" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.4.1.tgz#f2fb30c2c7b517db6e5b10ed20bb6b0a7ccd8d70" dependencies: @@ -8267,6 +8273,15 @@ react-test-renderer@^16.0.0-0, react-test-renderer@^16.4.1: prop-types "^15.6.0" react-is "^16.4.1" +react-test-renderer@^16.5.1: + version "16.5.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.1.tgz#17f020fb0cf884cadebb5240d9d9c23452f18299" + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.5.1" + schedule "^0.4.0" + react-timer-mixin@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.3.tgz#0da8b9f807ec07dc3e854d082c737c65605b3d22" @@ -8298,14 +8313,14 @@ react-treebeard@^2.1.0: shallowequal "^0.2.2" velocity-react "^1.3.1" -react@^16.4.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.4.1.tgz#de51ba5764b5dbcd1f9079037b862bd26b82fe32" +react@^16.5.1: + version "16.5.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.5.1.tgz#8cb8e9f8cdcb4bde41c9a138bfbf907e66132372" dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + schedule "^0.4.0" reactxp@^1.3.0: version "1.3.0" @@ -8836,6 +8851,12 @@ sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" +schedule@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.4.0.tgz#fa20cfd0bfbf91c47d02272fd7096780d3170bbb" + dependencies: + object-assign "^4.1.1" + schema-utils@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" @@ -9299,6 +9320,14 @@ string.prototype.padstart@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" +string.prototype.trim@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"