From 54664a1468cf5799daed4a98e2bb79638eb918ca Mon Sep 17 00:00:00 2001 From: David Mzareulyan Date: Mon, 22 Jan 2024 15:14:50 +0300 Subject: [PATCH 1/4] Upgrade React to v18 --- package.json | 4 ++-- src/app.jsx | 6 ++---- yarn.lock | 35 +++++++++++++++++++++-------------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 12b9cf6be..6b196a702 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ "photoswipe": "~5.4.3", "porter-stemmer": "~0.9.1", "prop-types": "~15.8.1", - "react": "~17.0.2", - "react-dom": "~17.0.2", + "react": "~18.2.0", + "react-dom": "~18.2.0", "react-final-form-hooks": "~2.0.2", "react-google-recaptcha": "~3.1.0", "react-helmet": "~6.1.0", diff --git a/src/app.jsx b/src/app.jsx index 4de43aa1d..0d06294e5 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -1,5 +1,5 @@ /* global CONFIG */ -import ReactDOM from 'react-dom'; +import { createRoot } from 'react-dom/client'; import { Suspense, useEffect } from 'react'; import { Router, Route, IndexRoute, browserHistory, Redirect } from 'react-router'; import { Provider, useSelector } from 'react-redux'; @@ -411,14 +411,12 @@ function App() { const appRoot = document.querySelector('#app'); appRoot.className = ''; appRoot.innerHTML = ''; - -ReactDOM.render( +createRoot(appRoot).render( , - appRoot, ); function checkPath(Component, checker) { diff --git a/yarn.lock b/yarn.lock index 44dce4e2d..f3dac5db3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7866,16 +7866,15 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:~17.0.2": - version: 17.0.2 - resolution: "react-dom@npm:17.0.2" +"react-dom@npm:~18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" dependencies: loose-envify: "npm:^1.1.0" - object-assign: "npm:^4.1.1" - scheduler: "npm:^0.20.2" + scheduler: "npm:^0.23.0" peerDependencies: - react: 17.0.2 - checksum: 51abbcb72450fe527ebf978c3bc989ba266630faaa53f47a2fae5392369729e8de62b2e4683598cbe651ea7873cd34ec7d5127e2f50bf4bfe6bd0c3ad9bddcb0 + react: ^18.2.0 + checksum: 66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a languageName: node linkType: hard @@ -8168,13 +8167,12 @@ __metadata: languageName: node linkType: hard -"react@npm:~17.0.2": - version: 17.0.2 - resolution: "react@npm:17.0.2" +"react@npm:~18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" dependencies: loose-envify: "npm:^1.1.0" - object-assign: "npm:^4.1.1" - checksum: 07ae8959acf1596f0550685102fd6097d461a54a4fd46a50f88a0cd7daaa97fdd6415de1dcb4bfe0da6aa43221a6746ce380410fa848acc60f8ac41f6649c148 + checksum: b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 languageName: node linkType: hard @@ -8236,8 +8234,8 @@ __metadata: prettier: "npm:~3.2.4" prop-types: "npm:~15.8.1" querystring: "npm:~0.2.1" - react: "npm:~17.0.2" - react-dom: "npm:~17.0.2" + react: "npm:~18.2.0" + react-dom: "npm:~18.2.0" react-final-form-hooks: "npm:~2.0.2" react-google-recaptcha: "npm:~3.1.0" react-helmet: "npm:~6.1.0" @@ -8813,6 +8811,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd + languageName: node + linkType: hard + "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.5.1": version: 5.7.2 resolution: "semver@npm:5.7.2" From 6523267d42c957875c185dff46bbe1a947636d15 Mon Sep 17 00:00:00 2001 From: David Mzareulyan Date: Mon, 22 Jan 2024 15:37:47 +0300 Subject: [PATCH 2/4] Upgrade testing libraries --- package.json | 4 +- .../__snapshots__/list-editor.test.jsx.snap | 3 - yarn.lock | 82 +++++++------------ 3 files changed, 32 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 6b196a702..45a5e1b29 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@babel/preset-react": "~7.23.3", "@gfx/zopfli": "~1.0.15", "@testing-library/jest-dom": "~6.2.0", - "@testing-library/react": "~12.1.5", + "@testing-library/react": "~14.1.2", "@testing-library/react-hooks": "~8.0.1", "@testing-library/user-event": "~14.5.2", "@vitejs/plugin-legacy": "~5.2.0", @@ -84,7 +84,7 @@ "npm-run-all": "~4.1.5", "prettier": "~3.2.4", "querystring": "~0.2.1", - "react-test-renderer": "~17.0.2", + "react-test-renderer": "~18.2.0", "rimraf": "~5.0.5", "sass": "^1.70.0", "sinon": "~17.0.1", diff --git a/test/jest/__snapshots__/list-editor.test.jsx.snap b/test/jest/__snapshots__/list-editor.test.jsx.snap index 2cb765523..4ac71412b 100644 --- a/test/jest/__snapshots__/list-editor.test.jsx.snap +++ b/test/jest/__snapshots__/list-editor.test.jsx.snap @@ -328,7 +328,6 @@ exports[`ListEditor > Searches for users 1`] = ` > list -
Searches for users 1`] = ` > List -
Searches for users 1`] = ` > list -
diff --git a/yarn.lock b/yarn.lock index f3dac5db3..501e58858 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2419,9 +2419,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^8.0.0": - version: 8.20.1 - resolution: "@testing-library/dom@npm:8.20.1" +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" dependencies: "@babel/code-frame": "npm:^7.10.4" "@babel/runtime": "npm:^7.12.5" @@ -2431,7 +2431,7 @@ __metadata: dom-accessibility-api: "npm:^0.5.9" lz-string: "npm:^1.5.0" pretty-format: "npm:^27.0.2" - checksum: 614013756706467f2a7f3f693c18377048c210ec809884f0f9be866f7d865d075805ad15f5d100e8a699467fdde09085bf79e23a00ea0a6ab001d9583ef15e5d + checksum: 147da340e8199d7f98f3a4ad8aa22ed55b914b83957efa5eb22bfea021a979ebe5a5182afa9c1e5b7a5f99a7f6744a5a4d9325ae46ec3b33b5a15aed8750d794 languageName: node linkType: hard @@ -2487,17 +2487,17 @@ __metadata: languageName: node linkType: hard -"@testing-library/react@npm:~12.1.5": - version: 12.1.5 - resolution: "@testing-library/react@npm:12.1.5" +"@testing-library/react@npm:~14.1.2": + version: 14.1.2 + resolution: "@testing-library/react@npm:14.1.2" dependencies: "@babel/runtime": "npm:^7.12.5" - "@testing-library/dom": "npm:^8.0.0" - "@types/react-dom": "npm:<18.0.0" + "@testing-library/dom": "npm:^9.0.0" + "@types/react-dom": "npm:^18.0.0" peerDependencies: - react: <18.0.0 - react-dom: <18.0.0 - checksum: 3c2433d2fdb6535261f62cd85d79657989cebd96f9072da03c098a1cfa56dec4dfec83d7c2e93633a3ccebdb178ea8578261533d11551600966edab77af00c8b + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: b5b0990d3aa0ea8b37c55804e0d5d584fc638a5c7d4df90da9a0fdb00bc981b27b6991468b2dc719982a5d0b0107a41596063ce51ad519eeab47b22bc04d6779 languageName: node linkType: hard @@ -2631,12 +2631,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:<18.0.0": - version: 17.0.25 - resolution: "@types/react-dom@npm:17.0.25" +"@types/react-dom@npm:^18.0.0": + version: 18.2.18 + resolution: "@types/react-dom@npm:18.2.18" dependencies: - "@types/react": "npm:^17" - checksum: 18a95d4d684cacc697d97ae66e3c8402da2f866c053fa6a5982694aa8eb6229afcefd3bfaaab4175c1b0ef3494c881e4d25e2167aa669bcbbb84114fd02ae5ba + "@types/react": "npm:*" + checksum: 74dba11a1b8156f3a763f3fca1fb4ec1dcd349153279b8bf79210024a69f994bf2cf0728198c047f8130c5318420ea56281b0a4ef84c8ae943cd9a0cac705220 languageName: node linkType: hard @@ -2660,17 +2660,6 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^17": - version: 17.0.75 - resolution: "@types/react@npm:17.0.75" - dependencies: - "@types/prop-types": "npm:*" - "@types/scheduler": "npm:*" - csstype: "npm:^3.0.2" - checksum: e4ae790deeb4eb9afb9e1af5eeda4de32ec5984d40202f383d0d31336f23804c5ea36453f07f24f840393b8c1cd239fdee3054c9cf212b631a0abc0ce5f5f1e7 - languageName: node - linkType: hard - "@types/scheduler@npm:*": version: 0.16.8 resolution: "@types/scheduler@npm:0.16.8" @@ -7940,14 +7929,14 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0": +"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.2.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" checksum: 6eb5e4b28028c23e2bfcf73371e72cd4162e4ac7ab445ddae2afe24e347a37d6dc22fae6e1748632cd43c6d4f9b8f86dcf26bf9275e1874f436d129952528ae0 languageName: node linkType: hard -"react-is@npm:^17.0.1, react-is@npm:^17.0.2": +"react-is@npm:^17.0.1": version: 17.0.2 resolution: "react-is@npm:17.0.2" checksum: 2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 @@ -8060,7 +8049,7 @@ __metadata: languageName: node linkType: hard -"react-shallow-renderer@npm:^16.13.1": +"react-shallow-renderer@npm:^16.15.0": version: 16.15.0 resolution: "react-shallow-renderer@npm:16.15.0" dependencies: @@ -8110,17 +8099,16 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:~17.0.2": - version: 17.0.2 - resolution: "react-test-renderer@npm:17.0.2" +"react-test-renderer@npm:~18.2.0": + version: 18.2.0 + resolution: "react-test-renderer@npm:18.2.0" dependencies: - object-assign: "npm:^4.1.1" - react-is: "npm:^17.0.2" - react-shallow-renderer: "npm:^16.13.1" - scheduler: "npm:^0.20.2" + react-is: "npm:^18.2.0" + react-shallow-renderer: "npm:^16.15.0" + scheduler: "npm:^0.23.0" peerDependencies: - react: 17.0.2 - checksum: a4ea1e745a87bb9015540d96a3077b614bf88e306a0edd639f8fb849a393fa5104e84eca4349bc4b026f2f0b115a4172d58950d7076316115795266557659276 + react: ^18.2.0 + checksum: 53dfada1da1e8dd0498a5601e9eea3dc6ca23c6c2694d1cab9712faea869c11e4ce1c9a618d674cb668a668b41fb6bcf9a7b0a078cd853b1922f002fa22f42c8 languageName: node linkType: hard @@ -8189,7 +8177,7 @@ __metadata: "@gfx/zopfli": "npm:~1.0.15" "@sentry/react": "npm:~7.94.1" "@testing-library/jest-dom": "npm:~6.2.0" - "@testing-library/react": "npm:~12.1.5" + "@testing-library/react": "npm:~14.1.2" "@testing-library/react-hooks": "npm:~8.0.1" "@testing-library/user-event": "npm:~14.5.2" "@vitejs/plugin-legacy": "npm:~5.2.0" @@ -8245,7 +8233,7 @@ __metadata: react-router-redux: "npm:~4.0.8" react-select: "npm:~5.8.0" react-sortablejs: "npm:~6.1.4" - react-test-renderer: "npm:~17.0.2" + react-test-renderer: "npm:~18.2.0" react-textarea-autosize: "npm:~8.5.3" recharts: "npm:~2.10.4" redux: "npm:~5.0.1" @@ -8801,16 +8789,6 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.20.2": - version: 0.20.2 - resolution: "scheduler@npm:0.20.2" - dependencies: - loose-envify: "npm:^1.1.0" - object-assign: "npm:^4.1.1" - checksum: b0982e4b0f34f4ffa4f2f486161c0fd9ce9b88680b045dccbf250eb1aa4fd27413570645455187a83535e2370f5c667a251045547765408492bd883cbe95fcdb - languageName: node - linkType: hard - "scheduler@npm:^0.23.0": version: 0.23.0 resolution: "scheduler@npm:0.23.0" From e3523b26c63294e79b6da31e5bc024dee7dfd1fa Mon Sep 17 00:00:00 2001 From: David Mzareulyan Date: Mon, 22 Jan 2024 15:46:33 +0300 Subject: [PATCH 3/4] Upgrade react-redux --- package.json | 2 +- yarn.lock | 40 ++++++++++------------------------------ 2 files changed, 11 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 45a5e1b29..0915d393d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "react-google-recaptcha": "~3.1.0", "react-helmet": "~6.1.0", "react-portal": "~4.2.2", - "react-redux": "~8.1.3", + "react-redux": "~9.1.0", "react-router": "~3.2.6", "react-router-redux": "~4.0.8", "react-select": "~5.8.0", diff --git a/yarn.lock b/yarn.lock index 501e58858..df410357d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1400,7 +1400,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.0, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.0, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.23.8 resolution: "@babel/runtime@npm:7.23.8" dependencies: @@ -2593,16 +2593,6 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:^3.3.1": - version: 3.3.5 - resolution: "@types/hoist-non-react-statics@npm:3.3.5" - dependencies: - "@types/react": "npm:*" - hoist-non-react-statics: "npm:^3.3.0" - checksum: 2a3b64bf3d9817d7830afa60ee314493c475fb09570a64e7737084cd482d2177ebdddf888ce837350bac51741278b077683facc9541f052d4bbe8487b4e3e618 - languageName: node - linkType: hard - "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -7962,35 +7952,25 @@ __metadata: languageName: node linkType: hard -"react-redux@npm:~8.1.3": - version: 8.1.3 - resolution: "react-redux@npm:8.1.3" +"react-redux@npm:~9.1.0": + version: 9.1.0 + resolution: "react-redux@npm:9.1.0" dependencies: - "@babel/runtime": "npm:^7.12.1" - "@types/hoist-non-react-statics": "npm:^3.3.1" "@types/use-sync-external-store": "npm:^0.0.3" - hoist-non-react-statics: "npm:^3.3.2" - react-is: "npm:^18.0.0" use-sync-external-store: "npm:^1.0.0" peerDependencies: - "@types/react": ^16.8 || ^17.0 || ^18.0 - "@types/react-dom": ^16.8 || ^17.0 || ^18.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - react-native: ">=0.59" - redux: ^4 || ^5.0.0-beta.0 + "@types/react": ^18.2.25 + react: ^18.0 + react-native: ">=0.69" + redux: ^5.0.0 peerDependenciesMeta: "@types/react": optional: true - "@types/react-dom": - optional: true - react-dom: - optional: true react-native: optional: true redux: optional: true - checksum: 64c8be2765568dc66a3c442a41dd0ed74fe048d5ceb7a4fe72e5bac3d3687996a7115f57b5156af7406521087065a0e60f9194318c8ca99c55e9ce48558980ce + checksum: 53161b5dc4d109020fbc42d26906ace92fed9ba1d7ab6274af60e9c0684583d20d1c8ec6d58601ac7b833c6468a652bbf3d4a102149d1793cb8a28b05b042f73 languageName: node linkType: hard @@ -8228,7 +8208,7 @@ __metadata: react-google-recaptcha: "npm:~3.1.0" react-helmet: "npm:~6.1.0" react-portal: "npm:~4.2.2" - react-redux: "npm:~8.1.3" + react-redux: "npm:~9.1.0" react-router: "npm:~3.2.6" react-router-redux: "npm:~4.0.8" react-select: "npm:~5.8.0" From 95f54cf1d3d3cd66842c19d040a16b801ec704ad Mon Sep 17 00:00:00 2001 From: David Mzareulyan Date: Mon, 22 Jan 2024 16:13:44 +0300 Subject: [PATCH 4/4] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f4a379da..5e24640df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.128.0] - Not released +### Changed +- Upgrade React to v18 ## [1.127.0] - 2024-01-19 ### Changed