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';