diff --git a/package-lock.json b/package-lock.json index 63705167..59526aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "react-dropzone": "^14.2.3", "react-helmet": "^6.1.0", "react-markdown": "^10.0.0", - "react-router-dom": "^6.28.0", + "react-router": "^7.5.2", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.0", "rimraf": "^6.0.0", @@ -3299,15 +3299,6 @@ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz", "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==" }, - "node_modules/@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@rjsf/core": { "version": "5.24.1", "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.24.1.tgz", @@ -6900,6 +6891,15 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -15056,35 +15056,26 @@ } }, "node_modules/react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", + "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.21.0" + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.21.0", - "react-router": "6.28.0" - }, - "engines": { - "node": ">=14.0.0" + "react": ">=18", + "react-dom": ">=18" }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/react-side-effect": { @@ -15784,6 +15775,12 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -16872,6 +16869,12 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "license": "0BSD" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index a90915ff..b1e39eb4 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "react-dropzone": "^14.2.3", "react-helmet": "^6.1.0", "react-markdown": "^10.0.0", - "react-router-dom": "^6.28.0", + "react-router": "^7.5.2", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.0", "rimraf": "^6.0.0", diff --git a/src/components/MUILinkWithTracking/MUILinkWithTracking.stories.tsx b/src/components/MUILinkWithTracking/MUILinkWithTracking.stories.tsx index 26041ce8..6565aec0 100644 --- a/src/components/MUILinkWithTracking/MUILinkWithTracking.stories.tsx +++ b/src/components/MUILinkWithTracking/MUILinkWithTracking.stories.tsx @@ -1,7 +1,7 @@ import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { MUILinkWithTracking } from '.'; -import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import { BrowserRouter, Route, Routes } from 'react-router'; const meta = { title: 'Other/MUILinkWithTracking', diff --git a/src/components/RJST/Filters/PersistentFilters.tsx b/src/components/RJST/Filters/PersistentFilters.tsx index 8b4e883e..bea556ef 100644 --- a/src/components/RJST/Filters/PersistentFilters.tsx +++ b/src/components/RJST/Filters/PersistentFilters.tsx @@ -12,7 +12,7 @@ import { } from '../components/Filters/SchemaSieve'; import { isJSONSchema } from '../schemaOps'; import { useAnalyticsContext } from '../../../contexts/AnalyticsContext'; -import type { NavigateFunction } from 'react-router-dom'; +import type { NavigateFunction } from 'react-router'; export interface ListQueryStringFilterObject { n: string; @@ -159,7 +159,7 @@ export const loadRulesFromUrl = ( // In case of invalid signatures, remove search params to avoid Errors. if (isSignaturesInvalid) { - navigate?.({ search: '' }, { replace: true }); + void navigate?.({ search: '' }, { replace: true }); } if (signatures[0].operator === FULL_TEXT_SLUG) { @@ -208,7 +208,7 @@ export const PersistentFilters = ({ strictNullHandling: true, }); - navigate?.( + void navigate?.( { pathname, search: filterQuery, diff --git a/src/components/RJST/components/Filters/FocusSearch.tsx b/src/components/RJST/components/Filters/FocusSearch.tsx index ebcdaf69..b047e828 100644 --- a/src/components/RJST/components/Filters/FocusSearch.tsx +++ b/src/components/RJST/components/Filters/FocusSearch.tsx @@ -136,7 +136,7 @@ export const FocusSearch = ({ const url = new URL(rjstContext.getBaseUrl(entity)); window.open(url.toString(), '_blank'); } catch { - navigate(rjstContext.getBaseUrl(entity)); + void navigate(rjstContext.getBaseUrl(entity)); } } }} diff --git a/src/components/RouterLinkWithTracking/RouterLinkWithTracking.stories.tsx b/src/components/RouterLinkWithTracking/RouterLinkWithTracking.stories.tsx index 7abc1b23..c69bd24b 100644 --- a/src/components/RouterLinkWithTracking/RouterLinkWithTracking.stories.tsx +++ b/src/components/RouterLinkWithTracking/RouterLinkWithTracking.stories.tsx @@ -1,7 +1,7 @@ import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { RouterLinkWithTracking } from '.'; -import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import { BrowserRouter, Route, Routes } from 'react-router'; const meta = { title: 'Other/RouterLinkWithTracking', diff --git a/src/components/RouterLinkWithTracking/index.tsx b/src/components/RouterLinkWithTracking/index.tsx index 9b22fe79..692e4192 100644 --- a/src/components/RouterLinkWithTracking/index.tsx +++ b/src/components/RouterLinkWithTracking/index.tsx @@ -1,5 +1,5 @@ -import { Link } from 'react-router-dom'; -import type { LinkProps } from 'react-router-dom'; +import { Link } from 'react-router'; +import type { LinkProps } from 'react-router'; import { useAnalyticsContext } from '../../contexts/AnalyticsContext'; export interface RouterLinkWithTrackingProps extends LinkProps { eventName?: string; diff --git a/src/contexts/UiSharedComponentsContextProvider.tsx b/src/contexts/UiSharedComponentsContextProvider.tsx index 10f1f838..b753724c 100644 --- a/src/contexts/UiSharedComponentsContextProvider.tsx +++ b/src/contexts/UiSharedComponentsContextProvider.tsx @@ -1,6 +1,6 @@ import { createContext } from 'react'; import type { TFunction } from '../hooks/useTranslations'; -import type { NavigateFunction } from 'react-router-dom'; +import type { NavigateFunction } from 'react-router'; export interface UiSharedComponentsContextProviderInterface { navigate?: NavigateFunction; t?: TFunction;