diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb5ae6f9..62a25f27 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
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).
+## [0.7.0] - 2024-12-05
+### Added
+* *Nothing*
+
+### Changed
+* Update to react-router 7.
+
+### Deprecated
+* *Nothing*
+
+### Removed
+* Remove support for react-router 6.
+
+### Fixed
+* *Nothing*
+
+
## [0.6.0] - 2024-10-19
### Added
* *Nothing*
diff --git a/dev/App.tsx b/dev/App.tsx
index c49570b9..ba9a4d73 100644
--- a/dev/App.tsx
+++ b/dev/App.tsx
@@ -1,5 +1,5 @@
import type { FC } from 'react';
-import { BrowserRouter, Link, Route, Routes } from 'react-router-dom';
+import { BrowserRouter, Link, Route, Routes } from 'react-router';
import { MessagePage } from './block/MessagePage';
import { ResultPage } from './block/ResultPage';
import { SimpleCardPage } from './block/SimpleCardPage';
@@ -36,7 +36,10 @@ export const App: FC = () => (
} />
} />
} />
- } />
+
+ } />
+ } />
+
} />
Not found} />
diff --git a/dev/navigation/NavPillsPage.tsx b/dev/navigation/NavPillsPage.tsx
index 382c3adf..5ba0b006 100644
--- a/dev/navigation/NavPillsPage.tsx
+++ b/dev/navigation/NavPillsPage.tsx
@@ -1,6 +1,6 @@
import type { FC } from 'react';
import { useState } from 'react';
-import { Navigate, Route, Routes } from 'react-router-dom';
+import { Navigate, Route, Routes } from 'react-router';
import { NavPillItem, NavPills, ToggleSwitch } from '../../src';
export const NavPillsPage: FC = () => {
@@ -10,15 +10,15 @@ export const NavPillsPage: FC = () => {
<>
Fill
- Foo
- Bar
- Baz
+ Foo
+ Bar
+ Baz
This is option foo} />
This is option bar} />
This is option baz} />
- } />
+ } />
>
);
diff --git a/package-lock.json b/package-lock.json
index 39f462cd..aba4847a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -45,7 +45,7 @@
"@fortawesome/react-fontawesome": "^0.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router-dom": "^6.14.2",
+ "react-router": "^7.0.2",
"reactstrap": "^9.2.0"
}
},
@@ -1686,15 +1686,6 @@
"url": "https://opencollective.com/popperjs"
}
},
- "node_modules/@remix-run/router": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz",
- "integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==",
- "peer": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@rollup/pluginutils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@@ -2326,6 +2317,13 @@
"@babel/types": "^7.20.7"
}
},
+ "node_modules/@types/cookie": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -3972,6 +3970,16 @@
"dev": true,
"license": "MIT"
},
+ "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",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/cosmiconfig": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
@@ -7344,35 +7352,28 @@
}
},
"node_modules/react-router": {
- "version": "6.14.2",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.2.tgz",
- "integrity": "sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.0.2.tgz",
+ "integrity": "sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
- "@remix-run/router": "1.7.2"
+ "@types/cookie": "^0.6.0",
+ "cookie": "^1.0.1",
+ "set-cookie-parser": "^2.6.0",
+ "turbo-stream": "2.4.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=20.0.0"
},
"peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/react-router-dom": {
- "version": "6.14.2",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.2.tgz",
- "integrity": "sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==",
- "peer": true,
- "dependencies": {
- "@remix-run/router": "1.7.2",
- "react-router": "6.14.2"
+ "react": ">=18",
+ "react-dom": ">=18"
},
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "react": ">=16.8",
- "react-dom": ">=16.8"
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
}
},
"node_modules/react-transition-group": {
@@ -7762,6 +7763,13 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
+ "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",
+ "peer": true
+ },
"node_modules/set-function-length": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
@@ -9328,6 +9336,13 @@
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
+ "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",
+ "peer": true
+ },
"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 5b755d70..ded9a747 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"@fortawesome/react-fontawesome": "^0.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router-dom": "^6.14.2",
+ "react-router": "^7.0.2",
"reactstrap": "^9.2.0"
},
"devDependencies": {
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index e5be8934..3f5cc58d 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -1,5 +1,5 @@
import { useCallback, useMemo, useRef, useState } from 'react';
-import { useLocation } from 'react-router-dom';
+import { useLocation } from 'react-router';
import { parseQueryString } from '../utils';
type ToggleResult = [boolean, () => void, () => void, () => void];
diff --git a/src/navigation/NavPills.tsx b/src/navigation/NavPills.tsx
index c0761725..44c51459 100644
--- a/src/navigation/NavPills.tsx
+++ b/src/navigation/NavPills.tsx
@@ -1,6 +1,6 @@
import type { FC, PropsWithChildren } from 'react';
import { Children, isValidElement } from 'react';
-import { NavLink as RouterNavLink } from 'react-router-dom';
+import { NavLink as RouterNavLink } from 'react-router';
import { Card, Nav, NavItem, NavLink } from 'reactstrap';
import './NavPills.scss';
diff --git a/test/hooks/index.test.tsx b/test/hooks/index.test.tsx
index 2b9fdb7c..bf80548c 100644
--- a/test/hooks/index.test.tsx
+++ b/test/hooks/index.test.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react';
import { createMemoryHistory } from 'history';
-import { Router } from 'react-router-dom';
+import { Router } from 'react-router';
import { useParsedQuery, useTimeoutToggle } from '../../src';
import { renderWithEvents } from '../__helpers__/setUpTest';
diff --git a/test/navigation/NavPills.test.tsx b/test/navigation/NavPills.test.tsx
index 516d9973..80681336 100644
--- a/test/navigation/NavPills.test.tsx
+++ b/test/navigation/NavPills.test.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react';
-import { MemoryRouter } from 'react-router-dom';
+import { MemoryRouter } from 'react-router';
import { NavPillItem, NavPills } from '../../src';
import { checkAccessibility } from '../__helpers__/accessibility';