From 9122b11cc39c7502ace162af6cb0811e639e7bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20Z=C3=BCger?= Date: Thu, 2 Apr 2026 09:58:18 +0200 Subject: [PATCH] Upgrade react-router-dom to v5 Intermediate step toward eventual v6/v7 migration. v5 is backward compatible with v4, adding hooks (useHistory, useLocation, useParams) without removing any existing APIs. --- package-lock.json | 74 ++++++++++++++++------------------------------- package.json | 4 +-- 2 files changed, 27 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8714d1..d03f367 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "@types/react-redux": "^7.1.0", - "@types/react-router-dom": "^4.3.0", + "@types/react-router-dom": "^5.3.3", "ajv": "^8.18.0", "ajv-keywords": "^5.1.0", "babel-jest": "^30.2.0", @@ -63,7 +63,7 @@ "react-day-picker": "^7.1.9", "react-dom": "^18.3.1", "react-redux": "^9.2.0", - "react-router-dom": "^4.2.2", + "react-router-dom": "^5.3.4", "redux": "^5.0.1", "redux-saga": "^1.4.2", "scroll-into-view": "^1.16.2", @@ -5811,13 +5811,13 @@ } }, "node_modules/@types/react-router-dom": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.5.tgz", - "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", "dev": true, "license": "MIT", "dependencies": { - "@types/history": "*", + "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router": "*" } @@ -11756,16 +11756,6 @@ "node": ">=10.13.0" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ipaddr.js": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", @@ -16382,49 +16372,45 @@ } }, "node_modules/react-router": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", - "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "dev": true, "license": "MIT", "dependencies": { - "history": "^4.7.2", - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.2.4", + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", "loose-envify": "^1.3.1", "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.1", - "warning": "^4.0.1" + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" }, "peerDependencies": { "react": ">=15" } }, "node_modules/react-router-dom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", - "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", "dev": true, "license": "MIT", "dependencies": { - "history": "^4.7.2", - "invariant": "^2.2.4", + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", "loose-envify": "^1.3.1", - "prop-types": "^15.6.1", - "react-router": "^4.3.1", - "warning": "^4.0.1" + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" }, "peerDependencies": { "react": ">=15" } }, - "node_modules/react-router/node_modules/hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -19477,16 +19463,6 @@ "makeerror": "1.0.12" } }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/watchpack": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", diff --git a/package.json b/package.json index 6bf9a6f..5691b34 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "@types/react-redux": "^7.1.0", - "@types/react-router-dom": "^4.3.0", + "@types/react-router-dom": "^5.3.3", "ajv": "^8.18.0", "ajv-keywords": "^5.1.0", "babel-jest": "^30.2.0", @@ -67,7 +67,7 @@ "react-day-picker": "^7.1.9", "react-dom": "^18.3.1", "react-redux": "^9.2.0", - "react-router-dom": "^4.2.2", + "react-router-dom": "^5.3.4", "redux": "^5.0.1", "redux-saga": "^1.4.2", "scroll-into-view": "^1.16.2",