diff --git a/package-lock.json b/package-lock.json index ae0ce07d2..4337a76c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -69,8 +69,7 @@ "react-google-recaptcha": "3.1.0", "react-i18next": "17.0.8", "react-range": "1.10.0", - "react-router": "latest", - "react-router-dom": "7.18.2", + "react-router": "8.3.0", "sanitize-html": "2.17.6", "slate": "0.124.1", "slate-dom": "0.124.1", @@ -5943,19 +5942,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cookie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", - "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/cookie-es": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz", @@ -11868,44 +11854,6 @@ } } }, - "node_modules/react-router-dom": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.2.tgz", - "integrity": "sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==", - "license": "MIT", - "dependencies": { - "react-router": "7.18.2" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/react-router-dom/node_modules/react-router": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.2.tgz", - "integrity": "sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==", - "license": "MIT", - "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, "node_modules/react-stately": { "version": "3.46.0", "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.46.0.tgz", @@ -12568,12 +12516,6 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "license": "ISC" }, - "node_modules/set-cookie-parser": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", - "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", - "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", diff --git a/package.json b/package.json index 44662c8f9..8386d51c5 100644 --- a/package.json +++ b/package.json @@ -94,8 +94,7 @@ "react-google-recaptcha": "3.1.0", "react-i18next": "17.0.8", "react-range": "1.10.0", - "react-router": "latest", - "react-router-dom": "8.3.0", + "react-router": "8.3.0", "sanitize-html": "2.17.6", "slate": "0.124.1", "slate-dom": "0.124.1", diff --git a/src/app/components/BackRouteHandler.tsx b/src/app/components/BackRouteHandler.tsx index c2c871d82..d9dfb60d1 100644 --- a/src/app/components/BackRouteHandler.tsx +++ b/src/app/components/BackRouteHandler.tsx @@ -1,5 +1,5 @@ import { ReactNode, useCallback } from 'react'; -import { matchPath, useLocation, useNavigate } from 'react-router-dom'; +import { matchPath, useLocation, useNavigate } from 'react-router'; import { getDirectPath, getExplorePath, diff --git a/src/app/components/nav/NavItem.tsx b/src/app/components/nav/NavItem.tsx index 7967ccc24..f5127ac6f 100644 --- a/src/app/components/nav/NavItem.tsx +++ b/src/app/components/nav/NavItem.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import React, { ComponentProps, forwardRef } from 'react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { as } from 'folds'; import * as css from './styles.css'; diff --git a/src/app/components/user-profile/UserChips.tsx b/src/app/components/user-profile/UserChips.tsx index 799019677..361600467 100644 --- a/src/app/components/user-profile/UserChips.tsx +++ b/src/app/components/user-profile/UserChips.tsx @@ -1,5 +1,5 @@ import React, { MouseEventHandler, useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import FocusTrap from 'focus-trap-react'; import { isKeyHotkey } from 'is-hotkey'; import { Room } from 'matrix-js-sdk'; diff --git a/src/app/components/user-profile/UserRoomProfile.tsx b/src/app/components/user-profile/UserRoomProfile.tsx index 1b2c25881..86de47f26 100644 --- a/src/app/components/user-profile/UserRoomProfile.tsx +++ b/src/app/components/user-profile/UserRoomProfile.tsx @@ -1,6 +1,6 @@ import { Box, Button, color, config, Icon, IconButton, Icons, Spinner, Text, toRem } from 'folds'; import React, { useCallback, useEffect, useRef, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { VerificationRequest } from 'matrix-js-sdk/lib/crypto-api'; import { AsyncState, AsyncStatus, useAsync } from '../../hooks/useAsyncCallback'; import { VerificationStatus } from '../../hooks/useDeviceVerificationStatus'; diff --git a/src/app/features/create-chat/CreateChat.tsx b/src/app/features/create-chat/CreateChat.tsx index 087e72be6..0c9c41cc9 100644 --- a/src/app/features/create-chat/CreateChat.tsx +++ b/src/app/features/create-chat/CreateChat.tsx @@ -1,7 +1,7 @@ import { Box, Button, color, config, Icon, Icons, Input, Spinner, Switch, Text } from 'folds'; import React, { FormEventHandler, useCallback, useState } from 'react'; import { ICreateRoomStateEvent, MatrixError, Preset, Visibility } from 'matrix-js-sdk'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { SettingTile } from '../../components/setting-tile'; import { SequenceCard } from '../../components/sequence-card'; import { addRoomIdToMDirect, isUserId } from '../../utils/matrix'; diff --git a/src/app/features/lobby/Lobby.tsx b/src/app/features/lobby/Lobby.tsx index bb43554ed..d691ab1e8 100644 --- a/src/app/features/lobby/Lobby.tsx +++ b/src/app/features/lobby/Lobby.tsx @@ -2,7 +2,7 @@ import React, { MouseEventHandler, useCallback, useMemo, useRef, useState } from import { Box, Chip, Icon, IconButton, Icons, Line, Scroll, Spinner, Text, config } from 'folds'; import { useVirtualizer } from '@tanstack/react-virtual'; import { useAtom, useAtomValue } from 'jotai'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { JoinRule, RestrictedAllowType, Room } from 'matrix-js-sdk'; import { RoomJoinRulesEventContent } from 'matrix-js-sdk/lib/types'; import { IHierarchyRoom } from 'matrix-js-sdk/lib/@types/spaces'; diff --git a/src/app/features/message-search/MessageSearch.tsx b/src/app/features/message-search/MessageSearch.tsx index fd1f1b234..0242ab12e 100644 --- a/src/app/features/message-search/MessageSearch.tsx +++ b/src/app/features/message-search/MessageSearch.tsx @@ -17,7 +17,7 @@ import { import { useAtom, useAtomValue } from 'jotai'; import { useVirtualizer } from '@tanstack/react-virtual'; import { useInfiniteQuery } from '@tanstack/react-query'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { EventTimeline, EventType, Room, SearchOrderBy } from 'matrix-js-sdk'; import { RoomPinnedEventsEventContent } from 'matrix-js-sdk/lib/types'; import { PageHero, PageHeroEmpty, PageHeroSection } from '../../components/page'; diff --git a/src/app/features/room/CallChatView.tsx b/src/app/features/room/CallChatView.tsx index adf9819f7..98d3d7749 100644 --- a/src/app/features/room/CallChatView.tsx +++ b/src/app/features/room/CallChatView.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { useSetAtom } from 'jotai'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { Box, Text, TooltipProvider, Tooltip, Icon, Icons, IconButton, toRem } from 'folds'; import { Page, PageHeader } from '../../components/page'; import { callChatAtom } from '../../state/callEmbed'; diff --git a/src/app/features/room/Room.tsx b/src/app/features/room/Room.tsx index e543b60dc..3b19fe92c 100644 --- a/src/app/features/room/Room.tsx +++ b/src/app/features/room/Room.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useEffect, useRef } from 'react'; import { Box, Line } from 'folds'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { isKeyHotkey } from 'is-hotkey'; import { useAtomValue, useSetAtom } from 'jotai'; import { RoomView } from './RoomView'; diff --git a/src/app/features/room/RoomViewHeader.tsx b/src/app/features/room/RoomViewHeader.tsx index 7b1c634c3..79b90044c 100644 --- a/src/app/features/room/RoomViewHeader.tsx +++ b/src/app/features/room/RoomViewHeader.tsx @@ -25,7 +25,7 @@ import { Button, } from 'folds'; import { useAtom } from 'jotai'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Room } from 'matrix-js-sdk'; import { useStateEvent } from '../../hooks/useStateEvent'; import { PageHeader } from '../../components/page'; diff --git a/src/app/hooks/router/useCreateSelected.ts b/src/app/hooks/router/useCreateSelected.ts index 2034a4492..f58d0c4e7 100644 --- a/src/app/hooks/router/useCreateSelected.ts +++ b/src/app/hooks/router/useCreateSelected.ts @@ -1,4 +1,4 @@ -import { useMatch } from 'react-router-dom'; +import { useMatch } from 'react-router'; import { getCreatePath } from '../../pages/pathUtils'; export const useCreateSelected = (): boolean => { diff --git a/src/app/hooks/router/useDirectSelected.ts b/src/app/hooks/router/useDirectSelected.ts index adb2851ed..5ec7ca979 100644 --- a/src/app/hooks/router/useDirectSelected.ts +++ b/src/app/hooks/router/useDirectSelected.ts @@ -1,4 +1,4 @@ -import { useMatch } from 'react-router-dom'; +import { useMatch } from 'react-router'; import { getDirectCreatePath, getDirectPath } from '../../pages/pathUtils'; export const useDirectSelected = (): boolean => { diff --git a/src/app/hooks/router/useExploreSelected.ts b/src/app/hooks/router/useExploreSelected.ts index f0ffdc86a..95b7f5a28 100644 --- a/src/app/hooks/router/useExploreSelected.ts +++ b/src/app/hooks/router/useExploreSelected.ts @@ -1,4 +1,4 @@ -import { useMatch, useParams } from 'react-router-dom'; +import { useMatch, useParams } from 'react-router'; import { getExploreFeaturedPath, getExplorePath } from '../../pages/pathUtils'; export const useExploreSelected = (): boolean => { diff --git a/src/app/hooks/router/useHomeSelected.ts b/src/app/hooks/router/useHomeSelected.ts index 75802601e..24f9483a7 100644 --- a/src/app/hooks/router/useHomeSelected.ts +++ b/src/app/hooks/router/useHomeSelected.ts @@ -1,4 +1,4 @@ -import { useMatch } from 'react-router-dom'; +import { useMatch } from 'react-router'; import { getHomeCreatePath, getHomeJoinPath, diff --git a/src/app/hooks/router/useInbox.ts b/src/app/hooks/router/useInbox.ts index de8d3d69f..cfa62fc66 100644 --- a/src/app/hooks/router/useInbox.ts +++ b/src/app/hooks/router/useInbox.ts @@ -1,4 +1,4 @@ -import { useMatch } from 'react-router-dom'; +import { useMatch } from 'react-router'; import { getInboxInvitesPath, getInboxNotificationsPath, diff --git a/src/app/hooks/router/useSearchParamsViaServers.ts b/src/app/hooks/router/useSearchParamsViaServers.ts index 0b1b2db7d..beac78848 100644 --- a/src/app/hooks/router/useSearchParamsViaServers.ts +++ b/src/app/hooks/router/useSearchParamsViaServers.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { getRoomSearchParams } from '../../pages/pathSearchParam'; import { decodeSearchParamValueArray } from '../../pages/pathUtils'; diff --git a/src/app/hooks/router/useSelectedRoom.ts b/src/app/hooks/router/useSelectedRoom.ts index 6d0ee4f19..1d1dbe3c0 100644 --- a/src/app/hooks/router/useSelectedRoom.ts +++ b/src/app/hooks/router/useSelectedRoom.ts @@ -1,4 +1,4 @@ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { getCanonicalAliasRoomId, isRoomAlias } from '../../utils/matrix'; import { useMatrixClient } from '../useMatrixClient'; diff --git a/src/app/hooks/router/useSelectedSpace.ts b/src/app/hooks/router/useSelectedSpace.ts index b891fde7e..723ede81a 100644 --- a/src/app/hooks/router/useSelectedSpace.ts +++ b/src/app/hooks/router/useSelectedSpace.ts @@ -1,4 +1,4 @@ -import { useMatch, useParams } from 'react-router-dom'; +import { useMatch, useParams } from 'react-router'; import { getCanonicalAliasRoomId, isRoomAlias } from '../../utils/matrix'; import { useMatrixClient } from '../useMatrixClient'; import { getSpaceLobbyPath, getSpaceSearchPath } from '../../pages/pathUtils'; diff --git a/src/app/hooks/useDeepLinkNavigate.ts b/src/app/hooks/useDeepLinkNavigate.ts index 8f53bef03..5b53bb2a3 100644 --- a/src/app/hooks/useDeepLinkNavigate.ts +++ b/src/app/hooks/useDeepLinkNavigate.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useMatrixClient } from './useMatrixClient'; import { useRoomNavigate } from './useRoomNavigate'; import { isRoomId } from '../utils/matrix'; diff --git a/src/app/hooks/useMentionClickHandler.ts b/src/app/hooks/useMentionClickHandler.ts index d86270056..54bfd47ee 100644 --- a/src/app/hooks/useMentionClickHandler.ts +++ b/src/app/hooks/useMentionClickHandler.ts @@ -1,5 +1,5 @@ import { ReactEventHandler, useCallback } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useRoomNavigate } from './useRoomNavigate'; import { useMatrixClient } from './useMatrixClient'; import { isRoomId, isUserId } from '../utils/matrix'; diff --git a/src/app/hooks/useNavToActivePathMapper.ts b/src/app/hooks/useNavToActivePathMapper.ts index d3cec08ef..e50f8017b 100644 --- a/src/app/hooks/useNavToActivePathMapper.ts +++ b/src/app/hooks/useNavToActivePathMapper.ts @@ -1,6 +1,6 @@ import { useEffect } from 'react'; import { useSetAtom } from 'jotai'; -import { useLocation } from 'react-router-dom'; +import { useLocation } from 'react-router'; import { useNavToActivePathAtom } from '../state/hooks/navToActivePath'; export const useNavToActivePathMapper = (navId: string) => { diff --git a/src/app/hooks/useRoomNavigate.ts b/src/app/hooks/useRoomNavigate.ts index 0de0fe4f7..982fb65b2 100644 --- a/src/app/hooks/useRoomNavigate.ts +++ b/src/app/hooks/useRoomNavigate.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react'; -import { NavigateOptions, useNavigate } from 'react-router-dom'; +import { NavigateOptions, useNavigate } from 'react-router'; import { useAtomValue } from 'jotai'; import { getCanonicalAliasOrRoomId } from '../utils/matrix'; import { diff --git a/src/app/hooks/useTauriToastActions.ts b/src/app/hooks/useTauriToastActions.ts index 4b608cb08..e9a3d90e5 100644 --- a/src/app/hooks/useTauriToastActions.ts +++ b/src/app/hooks/useTauriToastActions.ts @@ -1,4 +1,4 @@ -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { MsgType } from 'matrix-js-sdk'; import { useMatrixClient } from './useMatrixClient'; import { useTauriEvent } from './useTauri'; diff --git a/src/app/pages/App.tsx b/src/app/pages/App.tsx index 36abe4ae4..0fa3c1425 100644 --- a/src/app/pages/App.tsx +++ b/src/app/pages/App.tsx @@ -11,7 +11,7 @@ import { toRem, TooltipContainerProvider, } from 'folds'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; diff --git a/src/app/pages/MobileFriendly.tsx b/src/app/pages/MobileFriendly.tsx index ca947ac61..bbe8a0a05 100644 --- a/src/app/pages/MobileFriendly.tsx +++ b/src/app/pages/MobileFriendly.tsx @@ -1,5 +1,5 @@ import { ReactNode } from 'react'; -import { useMatch } from 'react-router-dom'; +import { useMatch } from 'react-router'; import { ScreenSize, useScreenSizeContext } from '../hooks/useScreenSize'; import { DIRECT_PATH, EXPLORE_PATH, HOME_PATH, INBOX_PATH, SPACE_PATH } from './paths'; diff --git a/src/app/pages/RouteError.tsx b/src/app/pages/RouteError.tsx index 360253c0a..7f840d7dc 100644 --- a/src/app/pages/RouteError.tsx +++ b/src/app/pages/RouteError.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { useRouteError, isRouteErrorResponse } from 'react-router-dom'; +import { useRouteError, isRouteErrorResponse } from 'react-router'; import { Box, Button, config, Text, toRem } from 'folds'; export function RouteError() { diff --git a/src/app/pages/Router.tsx b/src/app/pages/Router.tsx index 3e2dbef5a..e157ba9b3 100644 --- a/src/app/pages/Router.tsx +++ b/src/app/pages/Router.tsx @@ -6,7 +6,7 @@ import { createHashRouter, createRoutesFromElements, redirect, -} from 'react-router-dom'; +} from 'react-router'; import { RoomSkeleton } from '../components/RoomSkeleton'; import { LobbySkeleton } from '../components/LobbySkeleton'; import { AuthSkeleton } from '../components/AuthSkeleton'; diff --git a/src/app/pages/auth/AuthLayout.tsx b/src/app/pages/auth/AuthLayout.tsx index b57f82984..de19af0e8 100644 --- a/src/app/pages/auth/AuthLayout.tsx +++ b/src/app/pages/auth/AuthLayout.tsx @@ -1,13 +1,6 @@ import React, { useCallback, useEffect } from 'react'; import { Box, Header, Scroll, Spinner, Text, color } from 'folds'; -import { - Outlet, - generatePath, - matchPath, - useLocation, - useNavigate, - useParams, -} from 'react-router-dom'; +import { Outlet, generatePath, matchPath, useLocation, useNavigate, useParams } from 'react-router'; import classNames from 'classnames'; import { AuthFooter } from './AuthFooter'; diff --git a/src/app/pages/auth/login/Login.tsx b/src/app/pages/auth/login/Login.tsx index fb8082fda..85d68e430 100644 --- a/src/app/pages/auth/login/Login.tsx +++ b/src/app/pages/auth/login/Login.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; import { Box, Text, color } from 'folds'; -import { Link, useSearchParams } from 'react-router-dom'; +import { Link, useSearchParams } from 'react-router'; import { SSOAction } from 'matrix-js-sdk'; import { useAuthFlows } from '../../../hooks/useAuthFlows'; import { useAuthServer } from '../../../hooks/useAuthServer'; diff --git a/src/app/pages/auth/login/PasswordLoginForm.tsx b/src/app/pages/auth/login/PasswordLoginForm.tsx index 49529f7fc..924377090 100644 --- a/src/app/pages/auth/login/PasswordLoginForm.tsx +++ b/src/app/pages/auth/login/PasswordLoginForm.tsx @@ -18,7 +18,7 @@ import { config, } from 'folds'; import FocusTrap from 'focus-trap-react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { MatrixError } from 'matrix-js-sdk'; import { getMxIdLocalPart, getMxIdServer, isUserId } from '../../../utils/matrix'; import { EMAIL_REGEX } from '../../../utils/regex'; diff --git a/src/app/pages/auth/login/loginUtil.ts b/src/app/pages/auth/login/loginUtil.ts index af95b6fb0..43f6d4007 100644 --- a/src/app/pages/auth/login/loginUtil.ts +++ b/src/app/pages/auth/login/loginUtil.ts @@ -1,7 +1,7 @@ import to from 'await-to-js'; import { LoginRequest, LoginResponse, MatrixError, createClient } from 'matrix-js-sdk'; import { useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { ClientConfig, clientAllowedServer } from '../../../hooks/useClientConfig'; import { autoDiscovery, specVersions } from '../../../cs-api'; import { ErrorCode } from '../../../cs-errorcode'; diff --git a/src/app/pages/auth/register/Register.tsx b/src/app/pages/auth/register/Register.tsx index 1ec1dd9de..f203aab0f 100644 --- a/src/app/pages/auth/register/Register.tsx +++ b/src/app/pages/auth/register/Register.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; import { Box, Text, color } from 'folds'; -import { Link, useSearchParams } from 'react-router-dom'; +import { Link, useSearchParams } from 'react-router'; import { SSOAction } from 'matrix-js-sdk'; import { useAuthServer } from '../../../hooks/useAuthServer'; import { RegisterFlowStatus, useAuthFlows } from '../../../hooks/useAuthFlows'; diff --git a/src/app/pages/auth/register/registerUtil.ts b/src/app/pages/auth/register/registerUtil.ts index 3c0ee6c9b..7af24a166 100644 --- a/src/app/pages/auth/register/registerUtil.ts +++ b/src/app/pages/auth/register/registerUtil.ts @@ -7,7 +7,7 @@ import { RegisterResponse, } from 'matrix-js-sdk'; import { useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { LoginPathSearchParams } from '../../paths'; import { ErrorCode } from '../../../cs-errorcode'; import { diff --git a/src/app/pages/auth/reset-password/PasswordResetForm.tsx b/src/app/pages/auth/reset-password/PasswordResetForm.tsx index 5b1ad31d8..c9b128bed 100644 --- a/src/app/pages/auth/reset-password/PasswordResetForm.tsx +++ b/src/app/pages/auth/reset-password/PasswordResetForm.tsx @@ -12,7 +12,7 @@ import { color, config, } from 'folds'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import FocusTrap from 'focus-trap-react'; import { AuthDict, AuthType, MatrixError, createClient } from 'matrix-js-sdk'; import { useAutoDiscoveryInfo } from '../../../hooks/useAutoDiscoveryInfo'; diff --git a/src/app/pages/auth/reset-password/ResetPassword.tsx b/src/app/pages/auth/reset-password/ResetPassword.tsx index 82bec31d8..30df5fcfe 100644 --- a/src/app/pages/auth/reset-password/ResetPassword.tsx +++ b/src/app/pages/auth/reset-password/ResetPassword.tsx @@ -1,6 +1,6 @@ import { Box, Text } from 'folds'; import React, { useMemo } from 'react'; -import { Link, useSearchParams } from 'react-router-dom'; +import { Link, useSearchParams } from 'react-router'; import { getLoginPath } from '../../pathUtils'; import { useAuthServer } from '../../../hooks/useAuthServer'; import { PasswordResetForm } from './PasswordResetForm'; diff --git a/src/app/pages/client/ClientNonUIFeatures.tsx b/src/app/pages/client/ClientNonUIFeatures.tsx index e6863f3d5..95367b15d 100644 --- a/src/app/pages/client/ClientNonUIFeatures.tsx +++ b/src/app/pages/client/ClientNonUIFeatures.tsx @@ -1,6 +1,6 @@ import { useAtomValue, useSetAtom } from 'jotai'; import React, { ReactNode, useCallback, useEffect, useRef } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { ClientEvent, ClientEventHandlerMap, diff --git a/src/app/pages/client/direct/Direct.tsx b/src/app/pages/client/direct/Direct.tsx index 8a4dbd318..c676a80c8 100644 --- a/src/app/pages/client/direct/Direct.tsx +++ b/src/app/pages/client/direct/Direct.tsx @@ -19,7 +19,7 @@ import { } from 'folds'; import { useVirtualizer } from '@tanstack/react-virtual'; import FocusTrap from 'focus-trap-react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { factoryRoomIdByActivity } from '../../../utils/sort'; import { diff --git a/src/app/pages/client/direct/DirectCreate.tsx b/src/app/pages/client/direct/DirectCreate.tsx index 683aa57f1..d1b70f86b 100644 --- a/src/app/pages/client/direct/DirectCreate.tsx +++ b/src/app/pages/client/direct/DirectCreate.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from 'react'; -import { useNavigate, useSearchParams } from 'react-router-dom'; +import { useNavigate, useSearchParams } from 'react-router'; import { Box, Icon, IconButton, Icons, Scroll } from 'folds'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { getDirectCreateSearchParams } from '../../pathSearchParam'; diff --git a/src/app/pages/client/direct/RoomProvider.tsx b/src/app/pages/client/direct/RoomProvider.tsx index 7c26ec54f..24872991b 100644 --- a/src/app/pages/client/direct/RoomProvider.tsx +++ b/src/app/pages/client/direct/RoomProvider.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useSelectedRoom } from '../../../hooks/router/useSelectedRoom'; import { IsDirectRoomProvider, RoomProvider } from '../../../hooks/useRoom'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; diff --git a/src/app/pages/client/explore/Explore.tsx b/src/app/pages/client/explore/Explore.tsx index 3f44d75b5..7ba511bb7 100644 --- a/src/app/pages/client/explore/Explore.tsx +++ b/src/app/pages/client/explore/Explore.tsx @@ -1,5 +1,5 @@ import React, { FormEventHandler, useCallback, useRef, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import FocusTrap from 'focus-trap-react'; import { Avatar, diff --git a/src/app/pages/client/explore/Server.tsx b/src/app/pages/client/explore/Server.tsx index 4eb88cd32..7c1f7f031 100644 --- a/src/app/pages/client/explore/Server.tsx +++ b/src/app/pages/client/explore/Server.tsx @@ -27,7 +27,7 @@ import { config, toRem, } from 'folds'; -import { useNavigate, useParams, useSearchParams } from 'react-router-dom'; +import { useNavigate, useParams, useSearchParams } from 'react-router'; import FocusTrap from 'focus-trap-react'; import { useAtomValue } from 'jotai'; import { useQuery } from '@tanstack/react-query'; diff --git a/src/app/pages/client/home/Home.tsx b/src/app/pages/client/home/Home.tsx index ebd742109..43ebfad6f 100644 --- a/src/app/pages/client/home/Home.tsx +++ b/src/app/pages/client/home/Home.tsx @@ -6,7 +6,7 @@ import React, { useRef, useState, } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Avatar, Box, diff --git a/src/app/pages/client/home/RoomProvider.tsx b/src/app/pages/client/home/RoomProvider.tsx index 4e16f7977..74a4e912a 100644 --- a/src/app/pages/client/home/RoomProvider.tsx +++ b/src/app/pages/client/home/RoomProvider.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useSelectedRoom } from '../../../hooks/router/useSelectedRoom'; import { IsDirectRoomProvider, RoomProvider } from '../../../hooks/useRoom'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; diff --git a/src/app/pages/client/inbox/Notifications.tsx b/src/app/pages/client/inbox/Notifications.tsx index 02f12dcd4..78ace3c2e 100644 --- a/src/app/pages/client/inbox/Notifications.tsx +++ b/src/app/pages/client/inbox/Notifications.tsx @@ -12,7 +12,7 @@ import { config, toRem, } from 'folds'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { INotification, INotificationsResponse, diff --git a/src/app/pages/client/sidebar/CreateTab.tsx b/src/app/pages/client/sidebar/CreateTab.tsx index 8886da09a..60b2099ce 100644 --- a/src/app/pages/client/sidebar/CreateTab.tsx +++ b/src/app/pages/client/sidebar/CreateTab.tsx @@ -1,7 +1,7 @@ import React, { MouseEventHandler, useState } from 'react'; import { Box, config, Icon, Icons, Menu, PopOut, RectCords, Text } from 'folds'; import FocusTrap from 'focus-trap-react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { SidebarAvatar, SidebarItem, SidebarItemTooltip } from '../../../components/sidebar'; import { stopPropagation } from '../../../utils/keyboard'; import { SequenceCard } from '../../../components/sequence-card'; diff --git a/src/app/pages/client/sidebar/DirectTab.tsx b/src/app/pages/client/sidebar/DirectTab.tsx index dcd44e2f7..5a505bbf6 100644 --- a/src/app/pages/client/sidebar/DirectTab.tsx +++ b/src/app/pages/client/sidebar/DirectTab.tsx @@ -1,5 +1,5 @@ import React, { MouseEventHandler, forwardRef, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Box, Icon, Icons, Menu, MenuItem, PopOut, RectCords, Text, config, toRem } from 'folds'; import FocusTrap from 'focus-trap-react'; import { useAtomValue } from 'jotai'; diff --git a/src/app/pages/client/sidebar/ExploreTab.tsx b/src/app/pages/client/sidebar/ExploreTab.tsx index a45b58309..103194b77 100644 --- a/src/app/pages/client/sidebar/ExploreTab.tsx +++ b/src/app/pages/client/sidebar/ExploreTab.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Icon, Icons } from 'folds'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useAtomValue } from 'jotai'; import { SidebarAvatar, SidebarItem, SidebarItemTooltip } from '../../../components/sidebar'; import { useExploreSelected } from '../../../hooks/router/useExploreSelected'; diff --git a/src/app/pages/client/sidebar/HomeTab.tsx b/src/app/pages/client/sidebar/HomeTab.tsx index 778b729e2..32ab7eb10 100644 --- a/src/app/pages/client/sidebar/HomeTab.tsx +++ b/src/app/pages/client/sidebar/HomeTab.tsx @@ -1,5 +1,5 @@ import React, { MouseEventHandler, forwardRef, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Box, Icon, Icons, Menu, MenuItem, PopOut, RectCords, Text, config, toRem } from 'folds'; import { useAtomValue } from 'jotai'; import FocusTrap from 'focus-trap-react'; diff --git a/src/app/pages/client/sidebar/InboxTab.tsx b/src/app/pages/client/sidebar/InboxTab.tsx index 5d13a9ab6..839c05200 100644 --- a/src/app/pages/client/sidebar/InboxTab.tsx +++ b/src/app/pages/client/sidebar/InboxTab.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Icon, Icons } from 'folds'; import { useAtomValue } from 'jotai'; import { diff --git a/src/app/pages/client/sidebar/SpaceTabs.tsx b/src/app/pages/client/sidebar/SpaceTabs.tsx index 262454e25..508eb90a9 100644 --- a/src/app/pages/client/sidebar/SpaceTabs.tsx +++ b/src/app/pages/client/sidebar/SpaceTabs.tsx @@ -9,7 +9,7 @@ import React, { useRef, useState, } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { Box, Icon, diff --git a/src/app/pages/client/space/RoomProvider.tsx b/src/app/pages/client/space/RoomProvider.tsx index 0fd52ab67..7247732f1 100644 --- a/src/app/pages/client/space/RoomProvider.tsx +++ b/src/app/pages/client/space/RoomProvider.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useAtom, useAtomValue } from 'jotai'; import { useSelectedRoom } from '../../../hooks/router/useSelectedRoom'; import { IsDirectRoomProvider, RoomProvider } from '../../../hooks/useRoom'; diff --git a/src/app/pages/client/space/SpaceProvider.tsx b/src/app/pages/client/space/SpaceProvider.tsx index 2e0f79a22..ef7f251f5 100644 --- a/src/app/pages/client/space/SpaceProvider.tsx +++ b/src/app/pages/client/space/SpaceProvider.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { useSpaces } from '../../../state/hooks/roomList'; import { allRoomsAtom } from '../../../state/room-list/roomList'; diff --git a/src/app/pages/pathUtils.ts b/src/app/pages/pathUtils.ts index 305599645..4fcc13d7b 100644 --- a/src/app/pages/pathUtils.ts +++ b/src/app/pages/pathUtils.ts @@ -1,4 +1,4 @@ -import { generatePath, Path } from 'react-router-dom'; +import { generatePath, Path } from 'react-router'; import { DIRECT_CREATE_PATH, DIRECT_PATH, diff --git a/src/app/state/navToActivePath.test.ts b/src/app/state/navToActivePath.test.ts index dbdf04e4c..246397917 100644 --- a/src/app/state/navToActivePath.test.ts +++ b/src/app/state/navToActivePath.test.ts @@ -2,7 +2,7 @@ import { test } from 'node:test'; import assert from 'node:assert/strict'; import { createStore } from 'jotai'; import { enableMapSet } from 'immer'; -import type { Path } from 'react-router-dom'; +import type { Path } from 'react-router'; // `makeNavToActivePathAtom(userId)` is a factory: localStorage is read when the // returned atom is first created/accessed (not at module load), but we still diff --git a/src/app/state/navToActivePath.ts b/src/app/state/navToActivePath.ts index 66a6863b2..1d69d649a 100644 --- a/src/app/state/navToActivePath.ts +++ b/src/app/state/navToActivePath.ts @@ -1,6 +1,6 @@ import { WritableAtom, atom } from 'jotai'; import { produce } from 'immer'; -import { Path } from 'react-router-dom'; +import { Path } from 'react-router'; import { atomWithLocalStorage, getLocalStorageItem, diff --git a/vite.config.js b/vite.config.js index 9e4e0dc37..a909a372c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -227,7 +227,7 @@ const vendorChunks = (id) => { if (id.includes('node_modules/matrix-js-sdk')) return 'matrix-sdk'; if (id.includes('node_modules/react-dom')) return 'react-dom'; if ( - id.includes('node_modules/react-router-dom') || + id.includes('node_modules/react-router') || id.includes('node_modules/@remix-run') || id.includes('node_modules/react-router/') )