From ddba2e2b157b4f8e69b6c6e46b1b78cea670b65e Mon Sep 17 00:00:00 2001 From: ryan-crabbe-berri Date: Mon, 29 Jun 2026 18:15:27 -0700 Subject: [PATCH] refactor(ui): colocate search-tools into route-level _components (#31658) --- ui/litellm-dashboard/eslint-suppressions.json | 8 ++++---- .../search-tools/_components}/CreateSearchTools.tsx | 4 ++-- .../_components}/SearchConnectionTest.tsx | 4 ++-- .../search-tools/_components}/SearchToolColumn.tsx | 2 +- .../_components}/SearchToolTester.test.tsx | 6 +++--- .../search-tools/_components}/SearchToolTester.tsx | 4 ++-- .../search-tools/_components}/SearchToolView.test.tsx | 0 .../search-tools/_components}/SearchToolView.tsx | 0 .../search-tools/_components}/SearchTools.test.tsx | 6 +++--- .../search-tools/_components}/SearchTools.tsx | 11 ++++++++--- .../(dashboard)/search-tools/_components/index.tsx | 1 + .../(dashboard)/search-tools/_components}/types.tsx | 0 .../src/app/(dashboard)/search-tools/page.tsx | 2 +- ui/litellm-dashboard/src/components/OldTeams.tsx | 2 +- .../src/components/SearchTools/index.tsx | 5 ----- .../SearchToolSelector.tsx | 0 ui/litellm-dashboard/src/components/team/TeamInfo.tsx | 2 +- 17 files changed, 29 insertions(+), 28 deletions(-) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/CreateSearchTools.tsx (99%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchConnectionTest.tsx (98%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchToolColumn.tsx (96%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchToolTester.test.tsx (98%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchToolTester.tsx (99%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchToolView.test.tsx (100%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchToolView.tsx (100%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchTools.test.tsx (97%) rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/SearchTools.tsx (96%) create mode 100644 ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/index.tsx rename ui/litellm-dashboard/src/{components/SearchTools => app/(dashboard)/search-tools/_components}/types.tsx (100%) delete mode 100644 ui/litellm-dashboard/src/components/SearchTools/index.tsx rename ui/litellm-dashboard/src/components/{SearchTools => search_tools}/SearchToolSelector.tsx (100%) diff --git a/ui/litellm-dashboard/eslint-suppressions.json b/ui/litellm-dashboard/eslint-suppressions.json index 5d3a54f9e81..e3ae304c41c 100644 --- a/ui/litellm-dashboard/eslint-suppressions.json +++ b/ui/litellm-dashboard/eslint-suppressions.json @@ -505,7 +505,7 @@ "count": 1 } }, - "src/components/SearchTools/CreateSearchTools.tsx": { + "src/app/(dashboard)/search-tools/_components/CreateSearchTools.tsx": { "no-restricted-imports": { "count": 1 }, @@ -513,17 +513,17 @@ "count": 1 } }, - "src/components/SearchTools/SearchToolTester.tsx": { + "src/app/(dashboard)/search-tools/_components/SearchToolTester.tsx": { "no-restricted-imports": { "count": 1 } }, - "src/components/SearchTools/SearchToolView.tsx": { + "src/app/(dashboard)/search-tools/_components/SearchToolView.tsx": { "no-restricted-imports": { "count": 1 } }, - "src/components/SearchTools/SearchTools.tsx": { + "src/app/(dashboard)/search-tools/_components/SearchTools.tsx": { "no-restricted-imports": { "count": 1 }, diff --git a/ui/litellm-dashboard/src/components/SearchTools/CreateSearchTools.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/CreateSearchTools.tsx similarity index 99% rename from ui/litellm-dashboard/src/components/SearchTools/CreateSearchTools.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/CreateSearchTools.tsx index a8ed1a5e005..880f51dde61 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/CreateSearchTools.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/CreateSearchTools.tsx @@ -5,8 +5,8 @@ import { Button, TextInput } from "@tremor/react"; import { Form, Input, Modal, Select, Tooltip, Typography } from "antd"; import React, { useState } from "react"; import { resolveLogoSrc } from "@/lib/assetPaths"; -import NotificationsManager from "../molecules/notifications_manager"; -import { createSearchTool, fetchAvailableSearchProviders } from "../networking"; +import NotificationsManager from "@/components/molecules/notifications_manager"; +import { createSearchTool, fetchAvailableSearchProviders } from "@/components/networking"; import SearchConnectionTest from "./SearchConnectionTest"; import { AvailableSearchProvider, SearchTool } from "./types"; diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchConnectionTest.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchConnectionTest.tsx similarity index 98% rename from ui/litellm-dashboard/src/components/SearchTools/SearchConnectionTest.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchConnectionTest.tsx index 22f1b55073a..4e8678ded71 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchConnectionTest.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchConnectionTest.tsx @@ -1,8 +1,8 @@ import { InfoCircleOutlined, WarningOutlined } from "@ant-design/icons"; import { Button, Divider, Typography } from "antd"; import React, { useEffect, useState } from "react"; -import NotificationsManager from "../molecules/notifications_manager"; -import { testSearchToolConnection } from "../networking"; +import NotificationsManager from "@/components/molecules/notifications_manager"; +import { testSearchToolConnection } from "@/components/networking"; const { Text } = Typography; diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolColumn.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolColumn.tsx similarity index 96% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolColumn.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolColumn.tsx index b0cae367be0..198b3ea095f 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchToolColumn.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolColumn.tsx @@ -1,6 +1,6 @@ import { Tag } from "antd"; import { ColumnsType } from "antd/es/table"; -import TableIconActionButton from "../common_components/IconActionButton/TableIconActionButtons/TableIconActionButton"; +import TableIconActionButton from "@/components/common_components/IconActionButton/TableIconActionButtons/TableIconActionButton"; import { SearchTool } from "./types"; export const searchToolColumns = ( diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx similarity index 98% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.test.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx index 535aabd20a5..fd944120624 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx @@ -2,10 +2,10 @@ import { render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { SearchToolTester } from "./SearchToolTester"; -import * as networking from "../networking"; -import NotificationsManager from "../molecules/notifications_manager"; +import * as networking from "@/components/networking"; +import NotificationsManager from "@/components/molecules/notifications_manager"; -vi.mock("../networking", () => ({ +vi.mock("@/components/networking", () => ({ searchToolQueryCall: vi.fn(), })); diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.tsx similarity index 99% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.tsx index d8709e80f47..3c0582bdfab 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchToolTester.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.tsx @@ -2,8 +2,8 @@ import React, { useState } from "react"; import { Button, Input, Typography, Spin } from "antd"; import MessageManager from "@/components/molecules/message_manager"; import { SearchOutlined, LoadingOutlined } from "@ant-design/icons"; -import { searchToolQueryCall } from "../networking"; -import NotificationsManager from "../molecules/notifications_manager"; +import { searchToolQueryCall } from "@/components/networking"; +import NotificationsManager from "@/components/molecules/notifications_manager"; import { Card, Title as TremorTitle } from "@tremor/react"; const { Text } = Typography; diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolView.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolView.test.tsx similarity index 100% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolView.test.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolView.test.tsx diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolView.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolView.tsx similarity index 100% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolView.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolView.tsx diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchTools.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.test.tsx similarity index 97% rename from ui/litellm-dashboard/src/components/SearchTools/SearchTools.test.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.test.tsx index d6330167143..60216acb390 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchTools.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.test.tsx @@ -3,11 +3,11 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { beforeEach, describe, expect, it, vi } from "vitest"; -import * as networking from "../networking"; +import * as networking from "@/components/networking"; import SearchTools from "./SearchTools"; import { AvailableSearchProvider, SearchTool } from "./types"; -vi.mock("../networking", () => ({ +vi.mock("@/components/networking", () => ({ fetchSearchTools: vi.fn(), updateSearchTool: vi.fn(), deleteSearchTool: vi.fn(), @@ -46,7 +46,7 @@ vi.mock("./CreateSearchTools", () => { return { default: CreateSearchTools }; }); -vi.mock("../common_components/DeleteResourceModal", () => { +vi.mock("@/components/common_components/DeleteResourceModal", () => { const DeleteResourceModal = ({ isOpen, onOk, diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchTools.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.tsx similarity index 96% rename from ui/litellm-dashboard/src/components/SearchTools/SearchTools.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.tsx index ddd83f6e17f..53ca6c850b9 100644 --- a/ui/litellm-dashboard/src/components/SearchTools/SearchTools.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchTools.tsx @@ -4,9 +4,14 @@ import { useQuery } from "@tanstack/react-query"; import { Button, Text, Title } from "@tremor/react"; import { Form, Input, Modal, Select, Spin, Table } from "antd"; import React, { useState } from "react"; -import DeleteResourceModal from "../common_components/DeleteResourceModal"; -import NotificationsManager from "../molecules/notifications_manager"; -import { deleteSearchTool, fetchAvailableSearchProviders, fetchSearchTools, updateSearchTool } from "../networking"; +import DeleteResourceModal from "@/components/common_components/DeleteResourceModal"; +import NotificationsManager from "@/components/molecules/notifications_manager"; +import { + deleteSearchTool, + fetchAvailableSearchProviders, + fetchSearchTools, + updateSearchTool, +} from "@/components/networking"; import CreateSearchTool from "./CreateSearchTools"; import { searchToolColumns } from "./SearchToolColumn"; import { SearchToolView } from "./SearchToolView"; diff --git a/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/index.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/index.tsx new file mode 100644 index 00000000000..13b8e860e94 --- /dev/null +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/index.tsx @@ -0,0 +1 @@ +export { default as SearchTools } from "./SearchTools"; diff --git a/ui/litellm-dashboard/src/components/SearchTools/types.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/types.tsx similarity index 100% rename from ui/litellm-dashboard/src/components/SearchTools/types.tsx rename to ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/types.tsx diff --git a/ui/litellm-dashboard/src/app/(dashboard)/search-tools/page.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/page.tsx index 6616ee0efe0..7714bda9d16 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/search-tools/page.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { SearchTools } from "@/components/SearchTools"; +import { SearchTools } from "./_components"; import useAuthorized from "@/app/(dashboard)/hooks/useAuthorized"; export default function SearchToolsPage() { diff --git a/ui/litellm-dashboard/src/components/OldTeams.tsx b/ui/litellm-dashboard/src/components/OldTeams.tsx index be9015e3730..9c2106fa2fb 100644 --- a/ui/litellm-dashboard/src/components/OldTeams.tsx +++ b/ui/litellm-dashboard/src/components/OldTeams.tsx @@ -51,7 +51,7 @@ import NotificationsManager from "./molecules/notifications_manager"; import { Organization, fetchMCPAccessGroups, getGuardrailsList, getPoliciesList, teamDeleteCall } from "./networking"; import NumericalInput from "./shared/numerical_input"; import VectorStoreSelector from "./vector_store_management/VectorStoreSelector"; -import SearchToolSelector from "./SearchTools/SearchToolSelector"; +import SearchToolSelector from "./search_tools/SearchToolSelector"; interface TeamProps { accessToken: string | null; diff --git a/ui/litellm-dashboard/src/components/SearchTools/index.tsx b/ui/litellm-dashboard/src/components/SearchTools/index.tsx deleted file mode 100644 index 1a8730546f4..00000000000 --- a/ui/litellm-dashboard/src/components/SearchTools/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -export { default as SearchTools } from "./SearchTools"; -export { SearchToolView } from "./SearchToolView"; -export { default as SearchConnectionTest } from "./SearchConnectionTest"; -export { SearchToolTester } from "./SearchToolTester"; -export * from "./types"; diff --git a/ui/litellm-dashboard/src/components/SearchTools/SearchToolSelector.tsx b/ui/litellm-dashboard/src/components/search_tools/SearchToolSelector.tsx similarity index 100% rename from ui/litellm-dashboard/src/components/SearchTools/SearchToolSelector.tsx rename to ui/litellm-dashboard/src/components/search_tools/SearchToolSelector.tsx diff --git a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx index 602490a0c98..dc56e6c63e1 100644 --- a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx +++ b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx @@ -49,7 +49,7 @@ import { fetchMCPAccessGroups } from "../networking"; import ObjectPermissionsView from "../object_permissions_view"; import NumericalInput from "../shared/numerical_input"; import VectorStoreSelector from "../vector_store_management/VectorStoreSelector"; -import SearchToolSelector from "../SearchTools/SearchToolSelector"; +import SearchToolSelector from "../search_tools/SearchToolSelector"; import EditLoggingSettings from "./EditLoggingSettings"; import RouterSettingsAccordion, { RouterSettingsAccordionRef } from "../common_components/RouterSettingsAccordion"; import MemberModal from "./EditMembership";