diff --git a/api/src/main/webui/package-lock.json b/api/src/main/webui/package-lock.json index 0903e851f..2e2dd3734 100644 --- a/api/src/main/webui/package-lock.json +++ b/api/src/main/webui/package-lock.json @@ -27,7 +27,7 @@ "react-dom": "^19.2.8", "react-i18next": "^17.0.11", "react-json-view-lite": "^2.5.0", - "react-router-dom": "^7.18.1", + "react-router": "^8.0.0", "victory": "^37.3.6", "zustand": "^5.0.14" }, @@ -997,9 +997,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1017,9 +1014,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1037,9 +1031,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1057,9 +1048,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1077,9 +1065,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1097,9 +1082,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1748,18 +1730,11 @@ "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", + "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==", + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -3423,20 +3398,19 @@ } }, "node_modules/react-router": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.1.tgz", - "integrity": "sha512-GDLgg3i3uM0aeJO3Fm+TCS+sDQ7gu12T6x0qdTEzcwqEfleci7JwugVNIF3U//0FWKnJT7ptG+20B2jfDqnZAg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-8.3.0.tgz", + "integrity": "sha512-qyPMvW83jGIct3yiieisxdk9M745anqhpIMKN5m1t6yBMfgVPpt77aHOqs5fUlEJRMCGffg9BaQLH9oPVOL7xQ==", "license": "MIT", "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0" + "cookie-es": "^3.1.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.22.0" }, "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" + "react": ">=19.2.7", + "react-dom": ">=19.2.7" }, "peerDependenciesMeta": { "react-dom": { @@ -3444,22 +3418,6 @@ } } }, - "node_modules/react-router-dom": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.1.tgz", - "integrity": "sha512-KaZh+X/6UtEp28x51AUYZDMg9NGoz2ja3dNHa+ta/tk40vCzKhQ/RypCWBMLbmDr6//E24Vv5uPsrqXFozdkAg==", - "license": "MIT", - "dependencies": { - "react-router": "7.18.1" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -3519,12 +3477,6 @@ "node": ">=10" } }, - "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/shallow-equal": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", diff --git a/api/src/main/webui/package.json b/api/src/main/webui/package.json index 979c3f22f..007b542d2 100644 --- a/api/src/main/webui/package.json +++ b/api/src/main/webui/package.json @@ -29,7 +29,7 @@ "react-dom": "^19.2.8", "react-i18next": "^17.0.11", "react-json-view-lite": "^2.5.0", - "react-router-dom": "^7.18.1", + "react-router": "^8.0.0", "victory": "^37.3.6", "zustand": "^5.0.14" }, @@ -47,4 +47,4 @@ "typescript-eslint": "^8.65.0", "vite": "^8.1.5" } -} +} \ No newline at end of file diff --git a/api/src/main/webui/src/App.tsx b/api/src/main/webui/src/App.tsx index a612caf33..d70d411bb 100644 --- a/api/src/main/webui/src/App.tsx +++ b/api/src/main/webui/src/App.tsx @@ -3,7 +3,7 @@ * Provides the main layout and outlet for child routes */ -import { Outlet } from 'react-router-dom'; +import { Outlet } from 'react-router'; import { AppLayoutProvider } from '@/components/app/AppLayoutProvider'; import { ThemeProvider } from '@/components/app/ThemeProvider'; import { KafkaAuthProvider } from '@/components/auth/KafkaAuthProvider'; diff --git a/api/src/main/webui/src/components/auth/KafkaAuthProvider.tsx b/api/src/main/webui/src/components/auth/KafkaAuthProvider.tsx index a86fe2d07..fd805a2c5 100644 --- a/api/src/main/webui/src/components/auth/KafkaAuthProvider.tsx +++ b/api/src/main/webui/src/components/auth/KafkaAuthProvider.tsx @@ -1,5 +1,5 @@ import { createContext, useContext, useState, useCallback, ReactNode } from 'react'; -import { useParams, useNavigate } from 'react-router-dom'; +import { useParams, useNavigate } from 'react-router'; import { useQueryClient } from '@tanstack/react-query'; import { KafkaLoginModal } from './KafkaLoginModal'; import { QueryErrorHandler } from './QueryErrorHandler'; diff --git a/api/src/main/webui/src/components/common/ResourceListDataView.tsx b/api/src/main/webui/src/components/common/ResourceListDataView.tsx index 1c47cddb4..36c582782 100644 --- a/api/src/main/webui/src/components/common/ResourceListDataView.tsx +++ b/api/src/main/webui/src/components/common/ResourceListDataView.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useMemo, useState, useCallback } from 'react'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { DataView, diff --git a/api/src/main/webui/src/components/home/ClustersDataView.tsx b/api/src/main/webui/src/components/home/ClustersDataView.tsx index 5441a9070..b3d7e8a08 100644 --- a/api/src/main/webui/src/components/home/ClustersDataView.tsx +++ b/api/src/main/webui/src/components/home/ClustersDataView.tsx @@ -1,5 +1,5 @@ import { useCallback, useMemo } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Button, diff --git a/api/src/main/webui/src/components/kafka/ClusterSwitcher.tsx b/api/src/main/webui/src/components/kafka/ClusterSwitcher.tsx index caa38c1ec..9ad4f87b5 100644 --- a/api/src/main/webui/src/components/kafka/ClusterSwitcher.tsx +++ b/api/src/main/webui/src/components/kafka/ClusterSwitcher.tsx @@ -22,7 +22,7 @@ import { Tooltip, } from '@patternfly/react-core'; import { ArrowRightIcon, HomeIcon } from '@patternfly/react-icons'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useRef, useState } from 'react'; import { KafkaCluster } from '@/api/types'; diff --git a/api/src/main/webui/src/components/kafka/KafkaClusterSidebar.tsx b/api/src/main/webui/src/components/kafka/KafkaClusterSidebar.tsx index 52adcbd29..cd53cea87 100644 --- a/api/src/main/webui/src/components/kafka/KafkaClusterSidebar.tsx +++ b/api/src/main/webui/src/components/kafka/KafkaClusterSidebar.tsx @@ -5,7 +5,7 @@ import { Nav, NavItem, NavList, PageSidebar, PageSidebarBody } from '@patternfly/react-core'; import { useTranslation } from 'react-i18next'; -import { NavLink, useParams, useLocation } from 'react-router-dom'; +import { NavLink, useParams, useLocation } from 'react-router'; import { useAppLayout } from '@/components/app/AppLayoutProvider'; interface NavItemConfig { diff --git a/api/src/main/webui/src/components/kafka/connect/ConnectClustersTable.tsx b/api/src/main/webui/src/components/kafka/connect/ConnectClustersTable.tsx index 5403caf60..506336eff 100644 --- a/api/src/main/webui/src/components/kafka/connect/ConnectClustersTable.tsx +++ b/api/src/main/webui/src/components/kafka/connect/ConnectClustersTable.tsx @@ -5,7 +5,7 @@ */ import { useState, useEffect } from 'react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { Toolbar, ToolbarContent, diff --git a/api/src/main/webui/src/components/kafka/connect/ConnectorsTable.tsx b/api/src/main/webui/src/components/kafka/connect/ConnectorsTable.tsx index 5f3cc2eb7..abb9c71a1 100644 --- a/api/src/main/webui/src/components/kafka/connect/ConnectorsTable.tsx +++ b/api/src/main/webui/src/components/kafka/connect/ConnectorsTable.tsx @@ -5,7 +5,7 @@ */ import { useState, useEffect } from 'react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { Toolbar, ToolbarContent, diff --git a/api/src/main/webui/src/components/kafka/groups/GroupsTable.tsx b/api/src/main/webui/src/components/kafka/groups/GroupsTable.tsx index 44330d092..cd0ccb14a 100644 --- a/api/src/main/webui/src/components/kafka/groups/GroupsTable.tsx +++ b/api/src/main/webui/src/components/kafka/groups/GroupsTable.tsx @@ -4,7 +4,7 @@ */ import { useTranslation } from 'react-i18next'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { Label, LabelGroup, diff --git a/api/src/main/webui/src/components/kafka/groups/LagTable.tsx b/api/src/main/webui/src/components/kafka/groups/LagTable.tsx index 9167ecd1c..8af5ca6a3 100644 --- a/api/src/main/webui/src/components/kafka/groups/LagTable.tsx +++ b/api/src/main/webui/src/components/kafka/groups/LagTable.tsx @@ -3,7 +3,7 @@ */ import { useTranslation } from 'react-i18next'; -import { useParams, Link } from 'react-router-dom'; +import { useParams, Link } from 'react-router'; import { EmptyState, EmptyStateBody, diff --git a/api/src/main/webui/src/components/kafka/nodes/NodesTable.tsx b/api/src/main/webui/src/components/kafka/nodes/NodesTable.tsx index f93582f00..6a57b6b99 100644 --- a/api/src/main/webui/src/components/kafka/nodes/NodesTable.tsx +++ b/api/src/main/webui/src/components/kafka/nodes/NodesTable.tsx @@ -37,7 +37,7 @@ import { useControllerStatusLabels, } from './NodeStatusLabel'; import { formatNumber } from '@/utils/format'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; interface NodesTableProps { kafkaId: string; diff --git a/api/src/main/webui/src/components/kafka/nodes/RebalancesTable.tsx b/api/src/main/webui/src/components/kafka/nodes/RebalancesTable.tsx index 763ef76c0..eb276c3c4 100644 --- a/api/src/main/webui/src/components/kafka/nodes/RebalancesTable.tsx +++ b/api/src/main/webui/src/components/kafka/nodes/RebalancesTable.tsx @@ -5,7 +5,7 @@ import { useState, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { formatDateTime } from '@/utils/dateTime'; import { Table, diff --git a/api/src/main/webui/src/components/kafka/overview/ClusterCard.tsx b/api/src/main/webui/src/components/kafka/overview/ClusterCard.tsx index 045f72578..0ec755760 100644 --- a/api/src/main/webui/src/components/kafka/overview/ClusterCard.tsx +++ b/api/src/main/webui/src/components/kafka/overview/ClusterCard.tsx @@ -10,7 +10,7 @@ */ import * as React from 'react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Card, diff --git a/api/src/main/webui/src/components/kafka/overview/RecentTopicsCard.tsx b/api/src/main/webui/src/components/kafka/overview/RecentTopicsCard.tsx index 4ba4e76f5..ed2e73d0c 100644 --- a/api/src/main/webui/src/components/kafka/overview/RecentTopicsCard.tsx +++ b/api/src/main/webui/src/components/kafka/overview/RecentTopicsCard.tsx @@ -6,7 +6,7 @@ */ import { useState } from 'react'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Card, diff --git a/api/src/main/webui/src/components/kafka/overview/TopicsPartitionsCard.tsx b/api/src/main/webui/src/components/kafka/overview/TopicsPartitionsCard.tsx index a60971372..f3d3fed4b 100644 --- a/api/src/main/webui/src/components/kafka/overview/TopicsPartitionsCard.tsx +++ b/api/src/main/webui/src/components/kafka/overview/TopicsPartitionsCard.tsx @@ -7,7 +7,7 @@ * - Status breakdown (fully replicated, under-replicated, offline) */ -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Card, diff --git a/api/src/main/webui/src/components/kafka/topics/TopicsDataView.tsx b/api/src/main/webui/src/components/kafka/topics/TopicsDataView.tsx index 010dcf12e..35529c741 100644 --- a/api/src/main/webui/src/components/kafka/topics/TopicsDataView.tsx +++ b/api/src/main/webui/src/components/kafka/topics/TopicsDataView.tsx @@ -1,5 +1,5 @@ import { useCallback, useMemo } from 'react'; -import { Link, useParams } from 'react-router-dom'; +import { Link, useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { ThProps } from '@patternfly/react-table'; import { UseQueryResult } from '@tanstack/react-query'; diff --git a/api/src/main/webui/src/components/kafka/users/UsersTable.tsx b/api/src/main/webui/src/components/kafka/users/UsersTable.tsx index e73f812ce..d7e3ad061 100644 --- a/api/src/main/webui/src/components/kafka/users/UsersTable.tsx +++ b/api/src/main/webui/src/components/kafka/users/UsersTable.tsx @@ -3,7 +3,7 @@ * Displays a table of Kafka users with filtering and sorting */ -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Table, diff --git a/api/src/main/webui/src/main.tsx b/api/src/main/webui/src/main.tsx index 9432db459..b28fcc66b 100644 --- a/api/src/main/webui/src/main.tsx +++ b/api/src/main/webui/src/main.tsx @@ -1,6 +1,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { router } from './routes'; import './i18n/config'; diff --git a/api/src/main/webui/src/pages/ErrorPage.tsx b/api/src/main/webui/src/pages/ErrorPage.tsx index 7c8c705ee..21ec7c120 100644 --- a/api/src/main/webui/src/pages/ErrorPage.tsx +++ b/api/src/main/webui/src/pages/ErrorPage.tsx @@ -2,7 +2,7 @@ * Error Page - Displayed when routing errors occur */ -import { useRouteError, isRouteErrorResponse } from 'react-router-dom'; +import { useRouteError, isRouteErrorResponse } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Page, diff --git a/api/src/main/webui/src/pages/kafka/KafkaLayout.tsx b/api/src/main/webui/src/pages/kafka/KafkaLayout.tsx index 97f49a9a4..20e6c7a09 100644 --- a/api/src/main/webui/src/pages/kafka/KafkaLayout.tsx +++ b/api/src/main/webui/src/pages/kafka/KafkaLayout.tsx @@ -2,7 +2,7 @@ * Kafka Layout - Wrapper for Kafka cluster pages */ -import { Outlet, useParams, useLocation, Link } from 'react-router-dom'; +import { Outlet, useParams, useLocation, Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { Page, diff --git a/api/src/main/webui/src/pages/kafka/connect/ConnectClustersTab.tsx b/api/src/main/webui/src/pages/kafka/connect/ConnectClustersTab.tsx index bf3ee60bc..3c8986edd 100644 --- a/api/src/main/webui/src/pages/kafka/connect/ConnectClustersTab.tsx +++ b/api/src/main/webui/src/pages/kafka/connect/ConnectClustersTab.tsx @@ -4,7 +4,7 @@ * Displays the connect clusters table */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { PageSection } from '@patternfly/react-core'; import { ConnectClustersTable } from '@/components/kafka/connect/ConnectClustersTable'; diff --git a/api/src/main/webui/src/pages/kafka/connect/ConnectConnectorsTab.tsx b/api/src/main/webui/src/pages/kafka/connect/ConnectConnectorsTab.tsx index bc4c45649..ecd7884df 100644 --- a/api/src/main/webui/src/pages/kafka/connect/ConnectConnectorsTab.tsx +++ b/api/src/main/webui/src/pages/kafka/connect/ConnectConnectorsTab.tsx @@ -4,7 +4,7 @@ * Displays the connectors table */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { PageSection } from '@patternfly/react-core'; import { ConnectorsTable } from '@/components/kafka/connect/ConnectorsTable'; diff --git a/api/src/main/webui/src/pages/kafka/connect/ConnectPage.tsx b/api/src/main/webui/src/pages/kafka/connect/ConnectPage.tsx index 6ca2fb419..b2ec6f010 100644 --- a/api/src/main/webui/src/pages/kafka/connect/ConnectPage.tsx +++ b/api/src/main/webui/src/pages/kafka/connect/ConnectPage.tsx @@ -4,7 +4,7 @@ * Main page for Kafka Connect with tabs for Connectors and Connect Clusters */ -import { useParams, useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useParams, useNavigate, useLocation, Outlet } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/connect/detail/ConnectClusterDetailPage.tsx b/api/src/main/webui/src/pages/kafka/connect/detail/ConnectClusterDetailPage.tsx index f05e035fc..f2a04e7e7 100644 --- a/api/src/main/webui/src/pages/kafka/connect/detail/ConnectClusterDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/connect/detail/ConnectClusterDetailPage.tsx @@ -5,7 +5,7 @@ */ import { useState } from 'react'; -import { useParams, Link } from 'react-router-dom'; +import { useParams, Link } from 'react-router'; import { PageSection, Tabs, diff --git a/api/src/main/webui/src/pages/kafka/connect/detail/ConnectorDetailPage.tsx b/api/src/main/webui/src/pages/kafka/connect/detail/ConnectorDetailPage.tsx index 20afb0465..8e4ff1e27 100644 --- a/api/src/main/webui/src/pages/kafka/connect/detail/ConnectorDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/connect/detail/ConnectorDetailPage.tsx @@ -5,7 +5,7 @@ */ import { useState } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { PageSection, Title, diff --git a/api/src/main/webui/src/pages/kafka/groups/GroupsPage.tsx b/api/src/main/webui/src/pages/kafka/groups/GroupsPage.tsx index 76dbe2d54..364bacc3d 100644 --- a/api/src/main/webui/src/pages/kafka/groups/GroupsPage.tsx +++ b/api/src/main/webui/src/pages/kafka/groups/GroupsPage.tsx @@ -3,7 +3,7 @@ */ import { useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/groups/detail/GroupConfigurationTab.tsx b/api/src/main/webui/src/pages/kafka/groups/detail/GroupConfigurationTab.tsx index b13c216a3..9dceee8da 100644 --- a/api/src/main/webui/src/pages/kafka/groups/detail/GroupConfigurationTab.tsx +++ b/api/src/main/webui/src/pages/kafka/groups/detail/GroupConfigurationTab.tsx @@ -2,7 +2,7 @@ * Group Configuration Tab - Shows configuration settings for a consumer group */ -import { useOutletContext } from 'react-router-dom'; +import { useOutletContext } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useState, useMemo, useCallback } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/groups/detail/GroupDetailPage.tsx b/api/src/main/webui/src/pages/kafka/groups/detail/GroupDetailPage.tsx index a1cf11412..1518f61a3 100644 --- a/api/src/main/webui/src/pages/kafka/groups/detail/GroupDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/groups/detail/GroupDetailPage.tsx @@ -3,7 +3,7 @@ */ import { useState } from 'react'; -import { useParams, useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useParams, useNavigate, useLocation, Outlet } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/groups/detail/GroupMembersTab.tsx b/api/src/main/webui/src/pages/kafka/groups/detail/GroupMembersTab.tsx index e5e065c13..e9de313b5 100644 --- a/api/src/main/webui/src/pages/kafka/groups/detail/GroupMembersTab.tsx +++ b/api/src/main/webui/src/pages/kafka/groups/detail/GroupMembersTab.tsx @@ -2,7 +2,7 @@ * Group Members Tab - Shows members of a consumer group */ -import { useOutletContext } from 'react-router-dom'; +import { useOutletContext } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/nodes/NodesOverviewTab.tsx b/api/src/main/webui/src/pages/kafka/nodes/NodesOverviewTab.tsx index 71b5901b1..016c69ce1 100644 --- a/api/src/main/webui/src/pages/kafka/nodes/NodesOverviewTab.tsx +++ b/api/src/main/webui/src/pages/kafka/nodes/NodesOverviewTab.tsx @@ -2,7 +2,7 @@ * Nodes Overview Tab - Shows node distribution chart and nodes table */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/nodes/NodesPage.tsx b/api/src/main/webui/src/pages/kafka/nodes/NodesPage.tsx index 0bee1befa..dcb4045b1 100644 --- a/api/src/main/webui/src/pages/kafka/nodes/NodesPage.tsx +++ b/api/src/main/webui/src/pages/kafka/nodes/NodesPage.tsx @@ -2,7 +2,7 @@ * Nodes Page - Shows Kafka nodes with Overview and Rebalance tabs */ -import { useParams, useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useParams, useNavigate, useLocation, Outlet } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/nodes/NodesRebalancesTab.tsx b/api/src/main/webui/src/pages/kafka/nodes/NodesRebalancesTab.tsx index 152492873..30a360ba0 100644 --- a/api/src/main/webui/src/pages/kafka/nodes/NodesRebalancesTab.tsx +++ b/api/src/main/webui/src/pages/kafka/nodes/NodesRebalancesTab.tsx @@ -3,7 +3,7 @@ */ import { useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/nodes/detail/NodeConfigurationTab.tsx b/api/src/main/webui/src/pages/kafka/nodes/detail/NodeConfigurationTab.tsx index 098846a64..dd4139f4c 100644 --- a/api/src/main/webui/src/pages/kafka/nodes/detail/NodeConfigurationTab.tsx +++ b/api/src/main/webui/src/pages/kafka/nodes/detail/NodeConfigurationTab.tsx @@ -2,7 +2,7 @@ * Node Configuration Tab - Shows configuration settings for a Kafka node/broker */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useState, useMemo, useCallback } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/nodes/detail/NodeDetailPage.tsx b/api/src/main/webui/src/pages/kafka/nodes/detail/NodeDetailPage.tsx index f7bfe18b2..12079a0f8 100644 --- a/api/src/main/webui/src/pages/kafka/nodes/detail/NodeDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/nodes/detail/NodeDetailPage.tsx @@ -2,7 +2,7 @@ * Node Detail Page - Shows details for a specific Kafka node/broker */ -import { useParams, useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useParams, useNavigate, useLocation, Outlet } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/overview/KafkaOverview.tsx b/api/src/main/webui/src/pages/kafka/overview/KafkaOverview.tsx index f0eff7724..371e7540d 100644 --- a/api/src/main/webui/src/pages/kafka/overview/KafkaOverview.tsx +++ b/api/src/main/webui/src/pages/kafka/overview/KafkaOverview.tsx @@ -9,7 +9,7 @@ * - Metrics charts (placeholder for now) */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/topics/TopicsPage.tsx b/api/src/main/webui/src/pages/kafka/topics/TopicsPage.tsx index 496b3f92b..61720b3b9 100644 --- a/api/src/main/webui/src/pages/kafka/topics/TopicsPage.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/TopicsPage.tsx @@ -3,7 +3,7 @@ */ import { useCallback, useState } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/topics/detail/TopicConfigurationTab.tsx b/api/src/main/webui/src/pages/kafka/topics/detail/TopicConfigurationTab.tsx index a9650fc0a..49f9628cd 100644 --- a/api/src/main/webui/src/pages/kafka/topics/detail/TopicConfigurationTab.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/detail/TopicConfigurationTab.tsx @@ -2,7 +2,7 @@ * Topic Configuration Tab - Shows configuration settings for a topic */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useState, useMemo, useCallback } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/topics/detail/TopicDetailPage.tsx b/api/src/main/webui/src/pages/kafka/topics/detail/TopicDetailPage.tsx index 3e25b42b4..9c596f48d 100644 --- a/api/src/main/webui/src/pages/kafka/topics/detail/TopicDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/detail/TopicDetailPage.tsx @@ -2,7 +2,7 @@ * Topic Detail Page - Shows detailed information about a topic with tabs */ -import { useParams, useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useParams, useNavigate, useLocation, Outlet } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useEffect } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/topics/detail/TopicGroupsTab.tsx b/api/src/main/webui/src/pages/kafka/topics/detail/TopicGroupsTab.tsx index ed1598c53..17505ea15 100644 --- a/api/src/main/webui/src/pages/kafka/topics/detail/TopicGroupsTab.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/detail/TopicGroupsTab.tsx @@ -2,7 +2,7 @@ * Topic Groups Tab - Shows groups for a topic */ -import { useParams, Link } from 'react-router-dom'; +import { useParams, Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useMemo } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/topics/detail/TopicMessagesTab.tsx b/api/src/main/webui/src/pages/kafka/topics/detail/TopicMessagesTab.tsx index 25c1d4aee..eb2e1edb7 100644 --- a/api/src/main/webui/src/pages/kafka/topics/detail/TopicMessagesTab.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/detail/TopicMessagesTab.tsx @@ -3,7 +3,7 @@ */ import { useState, useCallback, useMemo } from 'react'; -import { useParams, useSearchParams } from 'react-router-dom'; +import { useParams, useSearchParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/topics/detail/TopicPartitionsTab.tsx b/api/src/main/webui/src/pages/kafka/topics/detail/TopicPartitionsTab.tsx index a9c24fd05..67343dda8 100644 --- a/api/src/main/webui/src/pages/kafka/topics/detail/TopicPartitionsTab.tsx +++ b/api/src/main/webui/src/pages/kafka/topics/detail/TopicPartitionsTab.tsx @@ -2,7 +2,7 @@ * Topic Partitions Tab - Shows partition information for a topic */ -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useState, useMemo, useEffect } from 'react'; import { diff --git a/api/src/main/webui/src/pages/kafka/users/UsersPage.tsx b/api/src/main/webui/src/pages/kafka/users/UsersPage.tsx index 8de7fef58..7ca385f4e 100644 --- a/api/src/main/webui/src/pages/kafka/users/UsersPage.tsx +++ b/api/src/main/webui/src/pages/kafka/users/UsersPage.tsx @@ -3,7 +3,7 @@ */ import { useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/pages/kafka/users/detail/UserDetailPage.tsx b/api/src/main/webui/src/pages/kafka/users/detail/UserDetailPage.tsx index 2bc7364a8..4f89d8408 100644 --- a/api/src/main/webui/src/pages/kafka/users/detail/UserDetailPage.tsx +++ b/api/src/main/webui/src/pages/kafka/users/detail/UserDetailPage.tsx @@ -3,7 +3,7 @@ */ import { useState } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { PageSection, diff --git a/api/src/main/webui/src/routes/index.tsx b/api/src/main/webui/src/routes/index.tsx index 1a1f26bf0..2ae1a3d36 100644 --- a/api/src/main/webui/src/routes/index.tsx +++ b/api/src/main/webui/src/routes/index.tsx @@ -2,7 +2,7 @@ * React Router configuration */ -import { createBrowserRouter, Navigate } from 'react-router-dom'; +import { createBrowserRouter, Navigate } from 'react-router'; import App from '../App'; // Root pages