diff --git a/echo/frontend/package.json b/echo/frontend/package.json index d319232d..8f1ef58f 100644 --- a/echo/frontend/package.json +++ b/echo/frontend/package.json @@ -67,7 +67,7 @@ "react-markdown": "^9.1.0", "react-pdf": "^9.2.1", "react-qrcode-logo": "^3.0.0", - "react-router-dom": "^7.4.0", + "react-router": "^7.8.2", "react-transition-group": "^4.4.5", "recharts": "^2.15.1", "rehype-stringify": "^10.0.1", diff --git a/echo/frontend/pnpm-lock.yaml b/echo/frontend/pnpm-lock.yaml index a92b3a6a..494597c5 100644 --- a/echo/frontend/pnpm-lock.yaml +++ b/echo/frontend/pnpm-lock.yaml @@ -166,9 +166,9 @@ importers: react-qrcode-logo: specifier: ^3.0.0 version: 3.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-router-dom: - specifier: ^7.4.0 - version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: + specifier: ^7.8.2 + version: 7.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-transition-group: specifier: ^4.4.5 version: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -210,7 +210,7 @@ importers: version: 3.1.1(react@19.0.0) vite-plugin-babel: specifier: ^1.3.2 - version: 1.3.2(@babel/core@7.26.10)(vite@6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0)) + version: 1.3.2(@babel/core@7.28.0)(vite@6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0)) zod: specifier: ^3.24.2 version: 3.24.2 @@ -2310,9 +2310,6 @@ packages: '@types/babel__traverse@7.20.7': resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -4352,15 +4349,8 @@ packages: '@types/react': optional: true - react-router-dom@7.4.0: - resolution: {integrity: sha512-VlksBPf3n2bijPvnA7nkTsXxMAKOj+bWp4R9c3i+bnwlSOFAGOkJkKhzy/OsRkWaBMICqcAl1JDzh9ZSOze9CA==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - - react-router@7.4.0: - resolution: {integrity: sha512-Y2g5ObjkvX3VFeVt+0CIPuYd9PpgqCslG7ASSIdN73LwA1nNWzcMLaoMRJfP3prZFI92svxFwbn7XkLJ+UPQ6A==} + react-router@7.8.2: + resolution: {integrity: sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -4717,9 +4707,6 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-stream@2.4.0: - resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -7302,8 +7289,6 @@ snapshots: dependencies: '@babel/types': 7.27.0 - '@types/cookie@0.6.0': {} - '@types/d3-array@3.2.1': {} '@types/d3-color@3.1.3': {} @@ -9655,19 +9640,11 @@ snapshots: optionalDependencies: '@types/react': 19.0.12 - react-router-dom@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-router@7.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - - react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@types/cookie': 0.6.0 cookie: 1.0.2 react: 19.0.0 set-cookie-parser: 2.7.1 - turbo-stream: 2.4.0 optionalDependencies: react-dom: 19.0.0(react@19.0.0) @@ -10086,8 +10063,6 @@ snapshots: safe-buffer: 5.2.1 optional: true - turbo-stream@2.4.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -10254,9 +10229,9 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - vite-plugin-babel@1.3.2(@babel/core@7.26.10)(vite@6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0)): + vite-plugin-babel@1.3.2(@babel/core@7.28.0)(vite@6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0)): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 vite: 6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0) vite@6.3.5(@types/node@22.13.14)(jiti@1.21.7)(sugarss@4.0.1(postcss@8.5.3))(yaml@2.7.0): diff --git a/echo/frontend/src/App.tsx b/echo/frontend/src/App.tsx index 05b0bbf7..243c6fe9 100644 --- a/echo/frontend/src/App.tsx +++ b/echo/frontend/src/App.tsx @@ -4,7 +4,7 @@ import "@mantine/dropzone/styles.css"; import { MantineProvider } from "@mantine/core"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { RouterProvider } from "react-router-dom"; +import { RouterProvider } from "react-router/dom"; import { I18nProvider } from "./components/layout/I18nProvider"; import { mainRouter, participantRouter } from "./Router"; import { USE_PARTICIPANT_ROUTER } from "./config"; diff --git a/echo/frontend/src/Router.tsx b/echo/frontend/src/Router.tsx index a3d14b92..2cc3294f 100644 --- a/echo/frontend/src/Router.tsx +++ b/echo/frontend/src/Router.tsx @@ -1,4 +1,4 @@ -import { Navigate, createBrowserRouter } from "react-router-dom"; +import { Navigate, createBrowserRouter } from "react-router"; import { createLazyRoute, createLazyNamedRoute, diff --git a/echo/frontend/src/components/aspect/AspectCard.tsx b/echo/frontend/src/components/aspect/AspectCard.tsx index 88a6eef3..aa250e05 100644 --- a/echo/frontend/src/components/aspect/AspectCard.tsx +++ b/echo/frontend/src/components/aspect/AspectCard.tsx @@ -2,7 +2,7 @@ import { Trans } from "@lingui/react/macro"; import { cn, sanitizeImageUrl } from "@/lib/utils"; import { Box, Button, LoadingOverlay, Paper, Stack, Text } from "@mantine/core"; import { IconArrowsDiagonal } from "@tabler/icons-react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { I18nLink } from "@/components/common/i18nLink"; import { useProjectById } from "@/components/project/hooks"; diff --git a/echo/frontend/src/components/aspect/hooks/useCopyAspect.tsx b/echo/frontend/src/components/aspect/hooks/useCopyAspect.tsx index 31721ab4..70cf6db5 100644 --- a/echo/frontend/src/components/aspect/hooks/useCopyAspect.tsx +++ b/echo/frontend/src/components/aspect/hooks/useCopyAspect.tsx @@ -1,7 +1,7 @@ import { directus } from "@/lib/directus"; import { readItem } from "@directus/sdk"; import useCopyToRichText from "@/hooks/useCopyToRichText"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; interface Quote { quote_id: { diff --git a/echo/frontend/src/components/aspect/hooks/useCopyQuote.ts b/echo/frontend/src/components/aspect/hooks/useCopyQuote.ts index 22a604b4..47784cc5 100644 --- a/echo/frontend/src/components/aspect/hooks/useCopyQuote.ts +++ b/echo/frontend/src/components/aspect/hooks/useCopyQuote.ts @@ -1,7 +1,7 @@ import { directus } from "@/lib/directus"; import { readItem } from "@directus/sdk"; import useCopyToRichText from "@/hooks/useCopyToRichText"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { string } from "zod"; // Define types inline since the .d.ts file is not a module @@ -20,7 +20,7 @@ type QuoteWithConversation = { }; export const useCopyQuote = () => { - const { language, projectId } = useParams(); + const { language, projectId } = useParams<{ language: string; projectId: string }>(); const { copied, copy } = useCopyToRichText(); // actually aspect Segment ID diff --git a/echo/frontend/src/components/auth/hooks/index.ts b/echo/frontend/src/components/auth/hooks/index.ts index 22db3673..e531d5ed 100644 --- a/echo/frontend/src/components/auth/hooks/index.ts +++ b/echo/frontend/src/components/auth/hooks/index.ts @@ -12,7 +12,7 @@ import { import { ADMIN_BASE_URL } from "@/config"; import { throwWithMessage } from "../utils/errorUtils"; import { useEffect, useState } from "react"; -import { useLocation, useSearchParams } from "react-router-dom"; +import { useLocation, useSearchParams } from "react-router"; export const useCurrentUser = () => useQuery({ diff --git a/echo/frontend/src/components/chat/ChatAccordion.tsx b/echo/frontend/src/components/chat/ChatAccordion.tsx index ba734cda..9ddff900 100644 --- a/echo/frontend/src/components/chat/ChatAccordion.tsx +++ b/echo/frontend/src/components/chat/ChatAccordion.tsx @@ -17,7 +17,7 @@ import { Center, Loader, } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { IconDotsVertical, IconPencil, IconTrash } from "@tabler/icons-react"; import { formatRelative } from "date-fns"; import { NavigationButton } from "../common/NavigationButton"; diff --git a/echo/frontend/src/components/chat/ChatHistoryMessage.tsx b/echo/frontend/src/components/chat/ChatHistoryMessage.tsx index 7db40e0e..cb07c2b2 100644 --- a/echo/frontend/src/components/chat/ChatHistoryMessage.tsx +++ b/echo/frontend/src/components/chat/ChatHistoryMessage.tsx @@ -19,7 +19,7 @@ import { CopyRichTextIconButton } from "@/components/common/CopyRichTextIconButt import { ConversationLinks } from "@/components/conversation/ConversationLinks"; import SourcesSearched from "./SourcesSearched"; import { I18nLink } from "@/components/common/i18nLink"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { IconInfoCircle } from "@tabler/icons-react"; import { Sources } from "./Sources"; import { ReferencesIconButton } from "../common/ReferencesIconButton"; diff --git a/echo/frontend/src/components/common/NavigationButton.tsx b/echo/frontend/src/components/common/NavigationButton.tsx index e08cf14a..7ebbd21c 100644 --- a/echo/frontend/src/components/common/NavigationButton.tsx +++ b/echo/frontend/src/components/common/NavigationButton.tsx @@ -10,7 +10,6 @@ import { Tooltip, } from "@mantine/core"; import { PropsWithChildren } from "react"; -import { Link } from "react-router-dom"; import { I18nLink } from "@/components/common/i18nLink"; import { LoadingSpinner } from "./LoadingSpinner"; diff --git a/echo/frontend/src/components/common/i18nLink.tsx b/echo/frontend/src/components/common/i18nLink.tsx index 0840d889..41ff5db3 100644 --- a/echo/frontend/src/components/common/i18nLink.tsx +++ b/echo/frontend/src/components/common/i18nLink.tsx @@ -1,7 +1,7 @@ import { SUPPORTED_LANGUAGES } from "@/config"; import { useLanguage } from "@/hooks/useLanguage"; import React from "react"; -import { Link, LinkProps, useParams } from "react-router-dom"; +import { Link, LinkProps, useParams } from "react-router"; export const I18nLink: React.FC = ({ to, ...props }) => { const { language } = useParams<{ language?: string }>(); diff --git a/echo/frontend/src/components/conversation/AutoSelectConversations.tsx b/echo/frontend/src/components/conversation/AutoSelectConversations.tsx index a18b49c9..edb9b6c2 100644 --- a/echo/frontend/src/components/conversation/AutoSelectConversations.tsx +++ b/echo/frontend/src/components/conversation/AutoSelectConversations.tsx @@ -12,7 +12,7 @@ import { Button, Alert, } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { IconCheck, IconLock, diff --git a/echo/frontend/src/components/conversation/ConversationAccordion.tsx b/echo/frontend/src/components/conversation/ConversationAccordion.tsx index ce87adc5..f734b73d 100644 --- a/echo/frontend/src/components/conversation/ConversationAccordion.tsx +++ b/echo/frontend/src/components/conversation/ConversationAccordion.tsx @@ -46,7 +46,7 @@ import { useCallback, Suspense, } from "react"; -import { useLocation, useParams } from "react-router-dom"; +import { useLocation, useParams } from "react-router"; import { UploadConversationDropzone } from "../dropzone/UploadConversationDropzone"; import { useDebouncedValue } from "@mantine/hooks"; import { diff --git a/echo/frontend/src/components/conversation/ConversationDangerZone.tsx b/echo/frontend/src/components/conversation/ConversationDangerZone.tsx index 6e65b84d..bebc63ef 100644 --- a/echo/frontend/src/components/conversation/ConversationDangerZone.tsx +++ b/echo/frontend/src/components/conversation/ConversationDangerZone.tsx @@ -1,7 +1,7 @@ import { t } from "@lingui/core/macro"; import { Trans } from "@lingui/react/macro"; import { Button, Group, Stack } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { IconDownload, IconTrash } from "@tabler/icons-react"; import { useDeleteConversationByIdMutation } from "./hooks"; import { useI18nNavigate } from "@/hooks/useI18nNavigate"; diff --git a/echo/frontend/src/components/conversation/ConversationLinks.tsx b/echo/frontend/src/components/conversation/ConversationLinks.tsx index e9e93a78..d7ff3103 100644 --- a/echo/frontend/src/components/conversation/ConversationLinks.tsx +++ b/echo/frontend/src/components/conversation/ConversationLinks.tsx @@ -1,5 +1,5 @@ import { Anchor, Group } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { I18nLink } from "@/components/common/i18nLink"; export const ConversationLinks = ({ diff --git a/echo/frontend/src/components/conversation/MoveConversationButton.tsx b/echo/frontend/src/components/conversation/MoveConversationButton.tsx index 09d230d6..14aca48b 100644 --- a/echo/frontend/src/components/conversation/MoveConversationButton.tsx +++ b/echo/frontend/src/components/conversation/MoveConversationButton.tsx @@ -22,7 +22,7 @@ import { useMoveConversationMutation } from "./hooks"; import { useInfiniteProjects } from "@/components/project/hooks"; import { Trans } from "@lingui/react/macro"; import { useI18nNavigate } from "@/hooks/useI18nNavigate"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; export const MoveConversationButton = ({ conversation, diff --git a/echo/frontend/src/components/error/ErrorPage.tsx b/echo/frontend/src/components/error/ErrorPage.tsx index 768a534d..57446c54 100644 --- a/echo/frontend/src/components/error/ErrorPage.tsx +++ b/echo/frontend/src/components/error/ErrorPage.tsx @@ -1,5 +1,5 @@ import { Box, Button, Text, Title } from "@mantine/core"; -import { useRouteError, isRouteErrorResponse } from "react-router-dom"; +import { useRouteError, isRouteErrorResponse } from "react-router"; import { BaseLayout } from "../layout/BaseLayout"; import { DEBUG_MODE } from "@/config"; diff --git a/echo/frontend/src/components/insight/Insight.tsx b/echo/frontend/src/components/insight/Insight.tsx index 526a09b4..3c4a7359 100644 --- a/echo/frontend/src/components/insight/Insight.tsx +++ b/echo/frontend/src/components/insight/Insight.tsx @@ -1,5 +1,5 @@ import { Paper, Stack, Text } from "@mantine/core"; -import { Link, useParams } from "react-router-dom"; +import { Link, useParams } from "react-router"; import { I18nLink } from "@/components/common/i18nLink"; export const Insight = ({ diff --git a/echo/frontend/src/components/language/LanguagePicker.tsx b/echo/frontend/src/components/language/LanguagePicker.tsx index fbf43222..f77930e1 100644 --- a/echo/frontend/src/components/language/LanguagePicker.tsx +++ b/echo/frontend/src/components/language/LanguagePicker.tsx @@ -3,7 +3,7 @@ import { SUPPORTED_LANGUAGES } from "@/config"; import { useLanguage } from "@/hooks/useLanguage"; import { NativeSelect } from "@mantine/core"; import { ChangeEvent } from "react"; -import { useLocation } from "react-router-dom"; +import { useLocation } from "react-router"; const data: Array<{ language: (typeof SUPPORTED_LANGUAGES)[number]; diff --git a/echo/frontend/src/components/layout/AuthLayout.tsx b/echo/frontend/src/components/layout/AuthLayout.tsx index 688f23e3..71ae43bc 100644 --- a/echo/frontend/src/components/layout/AuthLayout.tsx +++ b/echo/frontend/src/components/layout/AuthLayout.tsx @@ -1,7 +1,7 @@ import { Divider, LoadingOverlay } from "@mantine/core"; import { Footer } from "./Footer"; import { Header } from "./Header"; -import { Outlet, useNavigate, useSearchParams } from "react-router-dom"; +import { Outlet, useNavigate, useSearchParams } from "react-router"; import { PropsWithChildren, useEffect } from "react"; import { Toaster } from "../common/Toaster"; import { useAuthenticated } from "@/components/auth/hooks"; diff --git a/echo/frontend/src/components/layout/BaseLayout.tsx b/echo/frontend/src/components/layout/BaseLayout.tsx index eaa80dba..88402086 100644 --- a/echo/frontend/src/components/layout/BaseLayout.tsx +++ b/echo/frontend/src/components/layout/BaseLayout.tsx @@ -1,6 +1,6 @@ import { Box } from "@mantine/core"; import { Toaster } from "../common/Toaster"; -import { Outlet } from "react-router-dom"; +import { Outlet } from "react-router"; import { PropsWithChildren } from "react"; import { Header } from "./Header"; import { ErrorBoundary } from "../error/ErrorBoundary"; diff --git a/echo/frontend/src/components/layout/Header.tsx b/echo/frontend/src/components/layout/Header.tsx index 818bed01..0fd813cf 100644 --- a/echo/frontend/src/components/layout/Header.tsx +++ b/echo/frontend/src/components/layout/Header.tsx @@ -24,7 +24,7 @@ import { LanguagePicker } from "../language/LanguagePicker"; import { useState, useEffect } from "react"; import * as Sentry from "@sentry/react"; import { useLanguage } from "@/hooks/useLanguage"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { AnnouncementIcon } from "../announcement/AnnouncementIcon"; import { Announcements } from "../announcement/Announcements"; import { TopAnnouncementBar } from "../announcement/TopAnnouncementBar"; diff --git a/echo/frontend/src/components/layout/LanguageLayout.tsx b/echo/frontend/src/components/layout/LanguageLayout.tsx index 21d571ed..a73578e3 100644 --- a/echo/frontend/src/components/layout/LanguageLayout.tsx +++ b/echo/frontend/src/components/layout/LanguageLayout.tsx @@ -1,4 +1,4 @@ -import { Outlet } from "react-router-dom"; +import { Outlet } from "react-router"; import { I18nProvider } from "./I18nProvider"; export const LanguageLayout = () => { diff --git a/echo/frontend/src/components/layout/ParticipantLayout.tsx b/echo/frontend/src/components/layout/ParticipantLayout.tsx index 2616edc4..8eda0c00 100644 --- a/echo/frontend/src/components/layout/ParticipantLayout.tsx +++ b/echo/frontend/src/components/layout/ParticipantLayout.tsx @@ -1,4 +1,4 @@ -import { Outlet, useLocation } from "react-router-dom"; +import { Outlet, useLocation } from "react-router"; import { Group, ActionIcon, Box } from "@mantine/core"; import useSessionStorageState from "use-session-storage-state"; import { IconSettings } from "@tabler/icons-react"; diff --git a/echo/frontend/src/components/layout/ProjectConversationLayout.tsx b/echo/frontend/src/components/layout/ProjectConversationLayout.tsx index 9379a1e0..65c28e20 100644 --- a/echo/frontend/src/components/layout/ProjectConversationLayout.tsx +++ b/echo/frontend/src/components/layout/ProjectConversationLayout.tsx @@ -1,12 +1,12 @@ import { t } from "@lingui/core/macro"; import { Stack, Title } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { TabsWithRouter } from "./TabsWithRouter"; import { ConversationStatusIndicators } from "../conversation/ConversationAccordion"; import { CONVERSATION_FIELDS_WITHOUT_PROCESSING_STATUS, useConversationById } from "../conversation/hooks"; export const ProjectConversationLayout = () => { - const { conversationId } = useParams(); + const { conversationId } = useParams<{ conversationId: string }>(); const conversationQuery = useConversationById({ conversationId: conversationId ?? "", diff --git a/echo/frontend/src/components/layout/ProjectLayout.tsx b/echo/frontend/src/components/layout/ProjectLayout.tsx index 2901cd72..81757e0a 100644 --- a/echo/frontend/src/components/layout/ProjectLayout.tsx +++ b/echo/frontend/src/components/layout/ProjectLayout.tsx @@ -1,5 +1,5 @@ import { ActionIcon, Box } from "@mantine/core"; -import { Outlet } from "react-router-dom"; +import { Outlet } from "react-router"; import { ProjectSidebar } from "../project/ProjectSidebar"; import { Resizable } from "re-resizable"; import { useSidebar } from "@/components/layout/hooks/useSidebar"; diff --git a/echo/frontend/src/components/layout/ProjectLibraryLayout.tsx b/echo/frontend/src/components/layout/ProjectLibraryLayout.tsx index b06bfdd8..93b37a8a 100644 --- a/echo/frontend/src/components/layout/ProjectLibraryLayout.tsx +++ b/echo/frontend/src/components/layout/ProjectLibraryLayout.tsx @@ -1,6 +1,6 @@ import { t } from "@lingui/core/macro"; import { useDocumentTitle } from "@mantine/hooks"; -import { Outlet } from "react-router-dom"; +import { Outlet } from "react-router"; export const ProjectLibraryLayout = () => { useDocumentTitle(t`Project Library | Dembrane`); diff --git a/echo/frontend/src/components/layout/ProjectOverviewLayout.tsx b/echo/frontend/src/components/layout/ProjectOverviewLayout.tsx index 1aac5ddf..08c847ea 100644 --- a/echo/frontend/src/components/layout/ProjectOverviewLayout.tsx +++ b/echo/frontend/src/components/layout/ProjectOverviewLayout.tsx @@ -1,7 +1,7 @@ import { t } from "@lingui/core/macro"; import { useProjectById } from "@/components/project/hooks"; import { Box, Divider, LoadingOverlay, Stack } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { TabsWithRouter } from "./TabsWithRouter"; import { useDocumentTitle } from "@mantine/hooks"; import { ProjectQRCode } from "../project/ProjectQRCode"; diff --git a/echo/frontend/src/components/layout/TabsWithRouter.tsx b/echo/frontend/src/components/layout/TabsWithRouter.tsx index 235ce3c8..e3cf6aa6 100644 --- a/echo/frontend/src/components/layout/TabsWithRouter.tsx +++ b/echo/frontend/src/components/layout/TabsWithRouter.tsx @@ -1,6 +1,6 @@ import { Stack, Tabs, Box, LoadingOverlay } from "@mantine/core"; import { useEffect, useState, Suspense, useCallback } from "react"; -import { Outlet, useLocation, useParams } from "react-router-dom"; +import { Outlet, useLocation, useParams } from "react-router"; import { useI18nNavigate } from "@/hooks/useI18nNavigate"; const TabLoadingFallback = () => ( diff --git a/echo/frontend/src/components/participant/MicrophoneTest.tsx b/echo/frontend/src/components/participant/MicrophoneTest.tsx index 08949fc9..86c7ee8c 100644 --- a/echo/frontend/src/components/participant/MicrophoneTest.tsx +++ b/echo/frontend/src/components/participant/MicrophoneTest.tsx @@ -16,7 +16,7 @@ import { IconMicrophone } from "@tabler/icons-react"; import { Modal } from "@mantine/core"; import Cookies from "js-cookie"; import { useDisclosure } from "@mantine/hooks"; -import { useLocation } from "react-router-dom"; +import { useLocation } from "react-router"; interface MicrophoneTestProps { onContinue: (deviceId: string) => void; diff --git a/echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx b/echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx index 698bd1e6..f0e6e4c7 100644 --- a/echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx +++ b/echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx @@ -1,7 +1,7 @@ import { Trans } from "@lingui/react/macro"; // Start of Selection import React, { useEffect, useMemo, useState } from "react"; -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; import "./ParticipantOnboardingCards.css"; import { useLanguage } from "@/hooks/useLanguage"; diff --git a/echo/frontend/src/components/participant/UserChunkMessage.tsx b/echo/frontend/src/components/participant/UserChunkMessage.tsx index e2e06787..e5f6dbd4 100644 --- a/echo/frontend/src/components/participant/UserChunkMessage.tsx +++ b/echo/frontend/src/components/participant/UserChunkMessage.tsx @@ -5,7 +5,7 @@ import { t } from "@lingui/core/macro"; import { ActionIcon, Menu, Paper, Text } from "@mantine/core"; import { IconDotsVertical, IconTrash } from "@tabler/icons-react"; import { useMutation, useQueryClient } from "@tanstack/react-query"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; const UserChunkMessage = ({ chunk, @@ -14,7 +14,7 @@ const UserChunkMessage = ({ chunk?: TConversationChunk; hide?: boolean; }) => { - const { projectId, conversationId } = useParams(); + const { projectId, conversationId } = useParams<{ projectId: string; conversationId: string }>(); const queryClient = useQueryClient(); const deleteChunkMutation = useMutation({ diff --git a/echo/frontend/src/components/project/ProjectCard.tsx b/echo/frontend/src/components/project/ProjectCard.tsx index b44afa9f..9169b841 100644 --- a/echo/frontend/src/components/project/ProjectCard.tsx +++ b/echo/frontend/src/components/project/ProjectCard.tsx @@ -5,7 +5,7 @@ import { ActionIcon, Button, Group, Paper, Stack, Text } from "@mantine/core"; import { IconExternalLink } from "@tabler/icons-react"; import { formatRelative } from "date-fns"; import { PropsWithChildren } from "react"; -import { Link, useParams } from "react-router-dom"; +import { Link, useParams } from "react-router"; import { I18nLink } from "../common/i18nLink"; export const ProjectCard = ({ diff --git a/echo/frontend/src/components/project/ProjectListItem.tsx b/echo/frontend/src/components/project/ProjectListItem.tsx index aa74ff70..46c419d4 100644 --- a/echo/frontend/src/components/project/ProjectListItem.tsx +++ b/echo/frontend/src/components/project/ProjectListItem.tsx @@ -5,7 +5,6 @@ import { ActionIcon, Button, Group, Paper, Stack, Text } from "@mantine/core"; import { IconExternalLink } from "@tabler/icons-react"; import { formatRelative } from "date-fns"; import { PropsWithChildren } from "react"; -import { Link, useParams } from "react-router-dom"; import { I18nLink } from "../common/i18nLink"; export const ProjectListItem = ({ diff --git a/echo/frontend/src/components/project/ProjectSidebar.tsx b/echo/frontend/src/components/project/ProjectSidebar.tsx index 8dd82ae0..65211af2 100644 --- a/echo/frontend/src/components/project/ProjectSidebar.tsx +++ b/echo/frontend/src/components/project/ProjectSidebar.tsx @@ -12,7 +12,7 @@ import { Title, Tooltip, } from "@mantine/core"; -import { useLocation, useParams } from "react-router-dom"; +import { useLocation, useParams } from "react-router"; import { ProjectAccordion } from "./ProjectAccordion"; import { NavigationButton } from "../common/NavigationButton"; import { Breadcrumbs } from "../common/Breadcrumbs"; diff --git a/echo/frontend/src/components/quote/Quote.tsx b/echo/frontend/src/components/quote/Quote.tsx index 20267c00..6381aa17 100644 --- a/echo/frontend/src/components/quote/Quote.tsx +++ b/echo/frontend/src/components/quote/Quote.tsx @@ -1,5 +1,5 @@ import { Group, Paper, Pill, Text } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { I18nLink } from "../common/i18nLink"; import { cn } from "@/lib/utils"; import { useCopyQuote } from "@/components/aspect/hooks/useCopyQuote"; diff --git a/echo/frontend/src/components/report/ConversationStatusTable.tsx b/echo/frontend/src/components/report/ConversationStatusTable.tsx index e3c81fac..ae47c85b 100644 --- a/echo/frontend/src/components/report/ConversationStatusTable.tsx +++ b/echo/frontend/src/components/report/ConversationStatusTable.tsx @@ -1,7 +1,7 @@ import { Trans } from "@lingui/react/macro"; import { Anchor, Table, Text } from "@mantine/core"; import { useProjectConversationCounts } from "@/components/report/hooks"; -import { Link } from "react-router-dom"; +import { Link } from "react-router"; interface Conversation { id: string; diff --git a/echo/frontend/src/components/report/CreateReportForm.tsx b/echo/frontend/src/components/report/CreateReportForm.tsx index cc939e9b..65a0d456 100644 --- a/echo/frontend/src/components/report/CreateReportForm.tsx +++ b/echo/frontend/src/components/report/CreateReportForm.tsx @@ -15,7 +15,7 @@ import { ConversationStatusTable } from "./ConversationStatusTable"; import { useEffect, useState } from "react"; import { useCreateProjectReportMutation } from "./hooks"; import { useProjectConversationCounts } from "@/components/report/hooks"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { t } from "@lingui/core/macro"; import { languageOptionsByIso639_1 } from "../language/LanguagePicker"; import { useLanguage } from "@/hooks/useLanguage"; @@ -35,7 +35,7 @@ export const CreateReportForm = ({ onSuccess }: { onSuccess: () => void }) => { data: report, error, } = useCreateProjectReportMutation(); - const { projectId } = useParams(); + const { projectId } = useParams<{ projectId: string }>(); const { data: conversationCounts } = useProjectConversationCounts( projectId ?? "", ); diff --git a/echo/frontend/src/components/report/ReportModalNavigationButton.tsx b/echo/frontend/src/components/report/ReportModalNavigationButton.tsx index 3387a541..7b289cd4 100644 --- a/echo/frontend/src/components/report/ReportModalNavigationButton.tsx +++ b/echo/frontend/src/components/report/ReportModalNavigationButton.tsx @@ -6,7 +6,7 @@ import { useDisclosure } from "@mantine/hooks"; import { NavigationButton } from "../common/NavigationButton"; import { useCallback } from "react"; -import { useParams, useLocation } from "react-router-dom"; +import { useParams, useLocation } from "react-router"; import { t } from "@lingui/core/macro"; import { useI18nNavigate } from "@/hooks/useI18nNavigate"; import { CreateReportForm } from "./CreateReportForm"; diff --git a/echo/frontend/src/components/report/UpdateReportModalButton.tsx b/echo/frontend/src/components/report/UpdateReportModalButton.tsx index 01c26413..eb2563e3 100644 --- a/echo/frontend/src/components/report/UpdateReportModalButton.tsx +++ b/echo/frontend/src/components/report/UpdateReportModalButton.tsx @@ -10,7 +10,7 @@ import { import { useEffect, useState } from "react"; import { useProjectReport, useCreateProjectReportMutation, useDoesProjectReportNeedUpdate} from "./hooks"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { t } from "@lingui/core/macro"; import { languageOptionsByIso639_1 } from "../language/LanguagePicker"; import { useLanguage } from "@/hooks/useLanguage"; diff --git a/echo/frontend/src/components/view/View.tsx b/echo/frontend/src/components/view/View.tsx index aa5c19a6..04782bd8 100644 --- a/echo/frontend/src/components/view/View.tsx +++ b/echo/frontend/src/components/view/View.tsx @@ -13,7 +13,7 @@ import { } from "@mantine/core"; import { IconArrowsDiagonal, IconRefresh } from "@tabler/icons-react"; import { AspectCard } from "../aspect/AspectCard"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { Markdown } from "../common/Markdown"; import { I18nLink } from "../common/i18nLink"; import { useCopyView } from "./hooks/useCopyView"; diff --git a/echo/frontend/src/components/view/hooks/useCopyView.tsx b/echo/frontend/src/components/view/hooks/useCopyView.tsx index a83c9e23..2da138c0 100644 --- a/echo/frontend/src/components/view/hooks/useCopyView.tsx +++ b/echo/frontend/src/components/view/hooks/useCopyView.tsx @@ -1,7 +1,7 @@ import { directus } from "@/lib/directus"; import { readItem } from "@directus/sdk"; import useCopyToRichText from "@/hooks/useCopyToRichText"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; const MAX_QUOTES = 25; diff --git a/echo/frontend/src/hooks/useI18nNavigate.ts b/echo/frontend/src/hooks/useI18nNavigate.ts index 5fc59a5e..82480de1 100644 --- a/echo/frontend/src/hooks/useI18nNavigate.ts +++ b/echo/frontend/src/hooks/useI18nNavigate.ts @@ -1,5 +1,5 @@ import { SUPPORTED_LANGUAGES } from "@/config"; -import { NavigateOptions, To, useNavigate, useParams } from "react-router-dom"; +import { NavigateOptions, To, useNavigate, useParams } from "react-router"; import { useLanguage } from "./useLanguage"; export function useI18nNavigate() { diff --git a/echo/frontend/src/hooks/useLanguage.ts b/echo/frontend/src/hooks/useLanguage.ts index 53425c3b..3e9c579f 100644 --- a/echo/frontend/src/hooks/useLanguage.ts +++ b/echo/frontend/src/hooks/useLanguage.ts @@ -1,7 +1,7 @@ import { i18n } from "@lingui/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useEffect, useState } from "react"; import { SUPPORTED_LANGUAGES } from "@/config"; diff --git a/echo/frontend/src/routes/Debug.tsx b/echo/frontend/src/routes/Debug.tsx index e4dbcc33..fc41ca8d 100644 --- a/echo/frontend/src/routes/Debug.tsx +++ b/echo/frontend/src/routes/Debug.tsx @@ -14,7 +14,7 @@ import { } from "@mantine/core"; import { toast } from "@/components/common/Toaster"; import { useRef, useState, useMemo, useEffect } from "react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useProjectById } from "@/components/project/hooks"; import { useConversationById } from "@/components/conversation/hooks"; import { useProjectChats } from "@/components/chat/hooks"; diff --git a/echo/frontend/src/routes/auth/Login.tsx b/echo/frontend/src/routes/auth/Login.tsx index 732ae0df..1076a0a5 100644 --- a/echo/frontend/src/routes/auth/Login.tsx +++ b/echo/frontend/src/routes/auth/Login.tsx @@ -24,7 +24,7 @@ import { IconBrandGoogle } from "@tabler/icons-react"; import { useQuery } from "@tanstack/react-query"; import React, { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; import { I18nLink } from "@/components/common/i18nLink"; import { useLanguage } from "@/hooks/useLanguage"; import { toast } from "@/components/common/Toaster"; diff --git a/echo/frontend/src/routes/auth/PasswordReset.tsx b/echo/frontend/src/routes/auth/PasswordReset.tsx index 52f6405d..d8fa381f 100644 --- a/echo/frontend/src/routes/auth/PasswordReset.tsx +++ b/echo/frontend/src/routes/auth/PasswordReset.tsx @@ -12,7 +12,7 @@ import { import { useDocumentTitle } from "@mantine/hooks"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; export const PasswordResetRoute = () => { useDocumentTitle(t`Reset Password | Dembrane`); diff --git a/echo/frontend/src/routes/auth/VerifyEmail.tsx b/echo/frontend/src/routes/auth/VerifyEmail.tsx index 654ff72d..282c94c5 100644 --- a/echo/frontend/src/routes/auth/VerifyEmail.tsx +++ b/echo/frontend/src/routes/auth/VerifyEmail.tsx @@ -4,7 +4,7 @@ import { useVerifyMutation } from "@/components/auth/hooks"; import { Container, Group, Loader, Stack, Text, Title } from "@mantine/core"; import { useDocumentTitle } from "@mantine/hooks"; import { useEffect, useRef } from "react"; -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; export const VerifyEmailRoute = () => { useDocumentTitle(t`Email Verification | Dembrane`); diff --git a/echo/frontend/src/routes/participant/ParticipantConversation.tsx b/echo/frontend/src/routes/participant/ParticipantConversation.tsx index 13113d78..edebc44e 100644 --- a/echo/frontend/src/routes/participant/ParticipantConversation.tsx +++ b/echo/frontend/src/routes/participant/ParticipantConversation.tsx @@ -29,7 +29,7 @@ import { IconUpload, } from "@tabler/icons-react"; import { useCallback, useEffect, useState } from "react"; -import { useParams, useSearchParams } from "react-router-dom"; +import { useParams, useSearchParams } from "react-router"; import { useDisclosure, useWindowEvent } from "@mantine/hooks"; import { useLanguage } from "@/hooks/useLanguage"; import { useWakeLock } from "@/hooks/useWakeLock"; diff --git a/echo/frontend/src/routes/participant/ParticipantPostConversation.tsx b/echo/frontend/src/routes/participant/ParticipantPostConversation.tsx index d29fffbb..778851d8 100644 --- a/echo/frontend/src/routes/participant/ParticipantPostConversation.tsx +++ b/echo/frontend/src/routes/participant/ParticipantPostConversation.tsx @@ -24,7 +24,7 @@ import { IconLoader2, IconMail, } from "@tabler/icons-react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useMutation } from "@tanstack/react-query"; import { directus } from "@/lib/directus"; diff --git a/echo/frontend/src/routes/participant/ParticipantReport.tsx b/echo/frontend/src/routes/participant/ParticipantReport.tsx index 83bd4794..a35abf35 100644 --- a/echo/frontend/src/routes/participant/ParticipantReport.tsx +++ b/echo/frontend/src/routes/participant/ParticipantReport.tsx @@ -1,4 +1,4 @@ -import { useParams, useSearchParams } from "react-router-dom"; +import { useParams, useSearchParams } from "react-router"; import { ReportRenderer } from "@/components/report/ReportRenderer"; import { useCreateProjectReportMetricOncePerDayMutation } from "@/components/participant/hooks"; import { useProjectReportViews, useLatestProjectReport } from "@/components/report/hooks"; diff --git a/echo/frontend/src/routes/participant/ParticipantStart.tsx b/echo/frontend/src/routes/participant/ParticipantStart.tsx index aac135bd..07677b9d 100644 --- a/echo/frontend/src/routes/participant/ParticipantStart.tsx +++ b/echo/frontend/src/routes/participant/ParticipantStart.tsx @@ -3,7 +3,7 @@ import { useParticipantProjectById, useParticipantTutorialCardBySlug, } from "@/components/participant/hooks"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useEffect } from "react"; import useSessionStorageState from "use-session-storage-state"; import DembraneLoadingSpinner from "@/components/common/DembraneLoadingSpinner"; diff --git a/echo/frontend/src/routes/project/ProjectRoutes.tsx b/echo/frontend/src/routes/project/ProjectRoutes.tsx index dd8d9ac3..2f853b24 100644 --- a/echo/frontend/src/routes/project/ProjectRoutes.tsx +++ b/echo/frontend/src/routes/project/ProjectRoutes.tsx @@ -16,7 +16,7 @@ import { } from "@mantine/core"; import { ConversationStatusTable } from "@/components/report/ConversationStatusTable"; import { IconDownload } from "@tabler/icons-react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useMemo, useState } from "react"; import { UploadConversationDropzone } from "@/components/dropzone/UploadConversationDropzone"; diff --git a/echo/frontend/src/routes/project/ProjectsHome.tsx b/echo/frontend/src/routes/project/ProjectsHome.tsx index 39cd2661..4a72bb81 100644 --- a/echo/frontend/src/routes/project/ProjectsHome.tsx +++ b/echo/frontend/src/routes/project/ProjectsHome.tsx @@ -43,7 +43,7 @@ import { useI18nNavigate } from "@/hooks/useI18nNavigate"; import { useLanguage } from "@/hooks/useLanguage"; import { CloseableAlert } from "@/components/common/ClosableAlert"; import { useInView } from "react-intersection-observer"; -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; import { ProjectListSkeleton } from "@/components/project/ProjectListSkeleton"; export const ProjectsHomeRoute = () => { diff --git a/echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx b/echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx index e23951a6..a631fdfd 100644 --- a/echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx +++ b/echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx @@ -29,7 +29,7 @@ import { IconSend, IconSquare, } from "@tabler/icons-react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useChat } from "@ai-sdk/react"; import { API_BASE_URL, ENABLE_CHAT_AUTO_SELECT } from "@/config"; import { useEffect, useMemo, useRef, useState } from "react"; diff --git a/echo/frontend/src/routes/project/conversation/ProjectConversationOverview.tsx b/echo/frontend/src/routes/project/conversation/ProjectConversationOverview.tsx index 33ba98cc..ca30e39b 100644 --- a/echo/frontend/src/routes/project/conversation/ProjectConversationOverview.tsx +++ b/echo/frontend/src/routes/project/conversation/ProjectConversationOverview.tsx @@ -9,7 +9,7 @@ import { ActionIcon, Tooltip, } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useProjectById } from "@/components/project/hooks"; import { useConversationById, diff --git a/echo/frontend/src/routes/project/conversation/ProjectConversationTranscript.tsx b/echo/frontend/src/routes/project/conversation/ProjectConversationTranscript.tsx index 17f6a529..8a6ab20d 100644 --- a/echo/frontend/src/routes/project/conversation/ProjectConversationTranscript.tsx +++ b/echo/frontend/src/routes/project/conversation/ProjectConversationTranscript.tsx @@ -33,7 +33,7 @@ import { } from "@tabler/icons-react"; import { useState, useEffect } from "react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import useSessionStorageState from "use-session-storage-state"; import { useInView } from "react-intersection-observer"; import { ConversationChunkAudioTranscript } from "@/components/conversation/ConversationChunkAudioTranscript"; diff --git a/echo/frontend/src/routes/project/library/ProjectLibrary.tsx b/echo/frontend/src/routes/project/library/ProjectLibrary.tsx index cbe89444..083b27e6 100644 --- a/echo/frontend/src/routes/project/library/ProjectLibrary.tsx +++ b/echo/frontend/src/routes/project/library/ProjectLibrary.tsx @@ -40,7 +40,7 @@ import { IconLock, } from "@tabler/icons-react"; import { useCallback, useState } from "react"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { CreateView } from "@/components/view/CreateViewForm"; import { DummyViews } from "../../../components/view/DummyViews"; import { analytics } from "@/lib/analytics"; @@ -51,7 +51,7 @@ import { formatRelative } from "date-fns"; type SortBy = "relevance" | "default"; export const ProjectLibraryRoute = () => { - const { projectId } = useParams(); + const { projectId } = useParams<{ projectId: string }>(); const { iso639_1 } = useLanguage(); diff --git a/echo/frontend/src/routes/project/library/ProjectLibraryAspect.tsx b/echo/frontend/src/routes/project/library/ProjectLibraryAspect.tsx index 3ae4f773..bb27b5bb 100644 --- a/echo/frontend/src/routes/project/library/ProjectLibraryAspect.tsx +++ b/echo/frontend/src/routes/project/library/ProjectLibraryAspect.tsx @@ -8,7 +8,7 @@ import { Stack, Title, } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { Quote } from "../../../components/quote/Quote"; import { Markdown } from "@/components/common/Markdown"; import { useProjectById } from "@/components/project/hooks"; diff --git a/echo/frontend/src/routes/project/library/ProjectLibraryView.tsx b/echo/frontend/src/routes/project/library/ProjectLibraryView.tsx index 7aa56adf..63a00d38 100644 --- a/echo/frontend/src/routes/project/library/ProjectLibraryView.tsx +++ b/echo/frontend/src/routes/project/library/ProjectLibraryView.tsx @@ -14,7 +14,7 @@ import { Text, Title, } from "@mantine/core"; -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { CopyIconButton } from "@/components/common/CopyIconButton"; import { useCopyView } from "@/components/view/hooks/useCopyView"; diff --git a/echo/frontend/src/routes/project/report/ProjectReportRoute.tsx b/echo/frontend/src/routes/project/report/ProjectReportRoute.tsx index b0194c50..884c6471 100644 --- a/echo/frontend/src/routes/project/report/ProjectReportRoute.tsx +++ b/echo/frontend/src/routes/project/report/ProjectReportRoute.tsx @@ -1,4 +1,4 @@ -import { useParams } from "react-router-dom"; +import { useParams } from "react-router"; import { useUpdateProjectReportMutation, useGetProjectParticipants, diff --git a/echo/frontend/src/routes/project/unsubscribe/ProjectUnsubscribe.tsx b/echo/frontend/src/routes/project/unsubscribe/ProjectUnsubscribe.tsx index a03e80b4..840e7ff4 100644 --- a/echo/frontend/src/routes/project/unsubscribe/ProjectUnsubscribe.tsx +++ b/echo/frontend/src/routes/project/unsubscribe/ProjectUnsubscribe.tsx @@ -1,4 +1,4 @@ -import { useSearchParams } from "react-router-dom"; +import { useSearchParams } from "react-router"; import { useCheckUnsubscribeStatus } from "@/components/unsubscribe/hooks"; import { Button, Stack, Title, Text, Loader, Group } from "@mantine/core"; import { useState } from "react"; diff --git a/echo/frontend/vite.config.ts b/echo/frontend/vite.config.ts index eabfb846..94b7515c 100644 --- a/echo/frontend/vite.config.ts +++ b/echo/frontend/vite.config.ts @@ -26,7 +26,7 @@ export default defineConfig({ rollupOptions: { output: { manualChunks: { - vendor: ["react", "react-dom", "react-router-dom"], + vendor: ["react", "react-dom", "react-router"], ui: ["@mantine/core", "@mantine/hooks"], }, },