From 63968e6455238f0ae32b242000b9caac643b08db Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Thu, 1 Jan 2026 01:57:59 +0530 Subject: [PATCH] feat: Remove multiple connector components and streamline source addition process, updating UI elements for improved user experience and consistency. --- .../connectors/[connector_id]/edit/page.tsx | 336 -------- .../connectors/[connector_id]/page.tsx | 301 ------- .../add/airtable-connector/page.tsx | 181 ----- .../connectors/add/baidu-search-api/page.tsx | 323 -------- .../add/bookstack-connector/page.tsx | 306 ------- .../add/circleback-connector/page.tsx | 363 --------- .../connectors/add/clickup-connector/page.tsx | 241 ------ .../add/confluence-connector/page.tsx | 322 -------- .../connectors/add/discord-connector/page.tsx | 371 --------- .../add/elasticsearch-connector/page.tsx | 755 ------------------ .../connectors/add/github-connector/page.tsx | 531 ------------ .../add/google-calendar-connector/page.tsx | 188 ----- .../add/google-drive-connector/page.tsx | 205 ----- .../add/google-gmail-connector/page.tsx | 196 ----- .../connectors/add/jira-connector/page.tsx | 427 ---------- .../connectors/add/linear-connector/page.tsx | 379 --------- .../connectors/add/linkup-api/page.tsx | 219 ----- .../connectors/add/luma-connector/page.tsx | 268 ------- .../connectors/add/notion-connector/page.tsx | 390 --------- .../[search_space_id]/connectors/add/page.tsx | 16 - .../connectors/add/searxng/page.tsx | 370 --------- .../connectors/add/slack-connector/page.tsx | 421 ---------- .../connectors/add/tavily-api/page.tsx | 219 ----- .../components/DocumentsTableShell.tsx | 26 +- .../editor/[documentId]/page.tsx | 520 ------------ .../dashboard/[search_space_id]/layout.tsx | 4 - .../[search_space_id]/sources/add/page.tsx | 38 - .../components/dashboard-breadcrumb.tsx | 18 +- .../components/sidebar/app-sidebar.tsx | 4 - surfsense_web/components/sidebar/nav-main.tsx | 1 - .../components/sources/ConnectorsTab.tsx | 203 ----- .../components/sources/connector-data.tsx | 203 ----- 32 files changed, 14 insertions(+), 8331 deletions(-) delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/[connector_id]/edit/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/[connector_id]/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/airtable-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/baidu-search-api/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/bookstack-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/circleback-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/clickup-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/confluence-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/discord-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/elasticsearch-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/github-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/google-calendar-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/google-drive-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/google-gmail-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/jira-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/linear-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/linkup-api/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/luma-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/notion-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/searxng/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/slack-connector/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/connectors/add/tavily-api/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/editor/[documentId]/page.tsx delete mode 100644 surfsense_web/app/dashboard/[search_space_id]/sources/add/page.tsx delete mode 100644 surfsense_web/components/sources/ConnectorsTab.tsx delete mode 100644 surfsense_web/components/sources/connector-data.tsx diff --git a/surfsense_web/app/dashboard/[search_space_id]/connectors/[connector_id]/edit/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/connectors/[connector_id]/edit/page.tsx deleted file mode 100644 index 4c7bb3a3a..000000000 --- a/surfsense_web/app/dashboard/[search_space_id]/connectors/[connector_id]/edit/page.tsx +++ /dev/null @@ -1,336 +0,0 @@ -"use client"; - -import { ArrowLeft, Check, Loader2 } from "lucide-react"; -import { motion } from "motion/react"; -import { useParams, useRouter } from "next/navigation"; -import { useEffect } from "react"; -import { toast } from "sonner"; -import { EditConnectorLoadingSkeleton } from "@/components/editConnector/EditConnectorLoadingSkeleton"; -import { EditConnectorNameForm } from "@/components/editConnector/EditConnectorNameForm"; -import { EditGitHubConnectorConfig } from "@/components/editConnector/EditGitHubConnectorConfig"; -import { EditSimpleTokenForm } from "@/components/editConnector/EditSimpleTokenForm"; -import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { - Form, - FormControl, - FormDescription, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "@/components/ui/form"; -import { Textarea } from "@/components/ui/textarea"; -import { getConnectorIcon } from "@/contracts/enums/connectorIcons"; -import { useConnectorEditPage } from "@/hooks/use-connector-edit-page"; -// Import Utils, Types, Hook, and Components -import { getConnectorTypeDisplay } from "@/lib/connectors/utils"; - -export default function EditConnectorPage() { - const router = useRouter(); - const params = useParams(); - const searchSpaceId = params.search_space_id as string; - // Ensure connectorId is parsed safely - const connectorIdParam = params.connector_id as string; - const connectorId = connectorIdParam ? parseInt(connectorIdParam, 10) : NaN; - - // Use the custom hook to manage state and logic - const { - connectorsLoading, - connector, - isSaving, - editForm, - patForm, // Needed for GitHub child component - handleSaveChanges, - // GitHub specific props for the child component - editMode, - setEditMode, // Pass down if needed by GitHub component - originalPat, - currentSelectedRepos, - fetchedRepos, - setFetchedRepos, - newSelectedRepos, - setNewSelectedRepos, - isFetchingRepos, - handleFetchRepositories, - handleRepoSelectionChange, - } = useConnectorEditPage(connectorId, searchSpaceId); - - // Redirect if connectorId is not a valid number after parsing - useEffect(() => { - if (Number.isNaN(connectorId)) { - toast.error("Invalid Connector ID."); - router.push(`/dashboard/${searchSpaceId}/connectors`); - } - }, [connectorId, router, searchSpaceId]); - - // Loading State - if (connectorsLoading || !connector) { - // Handle NaN case before showing skeleton - if (Number.isNaN(connectorId)) return null; - return ; - } - - // Main Render using data/handlers from the hook - return ( -
- - - - - - - {getConnectorIcon(connector.connector_type)} - Edit {getConnectorTypeDisplay(connector.connector_type)} Connector - - Modify connector name and configuration. - - -
- {/* Pass hook's handleSaveChanges */} - - - {/* Pass form control from hook */} - - -
- -

Configuration

- - {/* == GitHub == */} - {connector.connector_type === "GITHUB_CONNECTOR" && ( - - )} - - {/* == Slack == */} - {connector.connector_type === "SLACK_CONNECTOR" && ( - - )} - {/* == Notion == */} - {connector.connector_type === "NOTION_CONNECTOR" && ( - - )} - {/* == Tavily == */} - {connector.connector_type === "TAVILY_API" && ( - - )} - - {/* == Linear == */} - {connector.connector_type === "LINEAR_CONNECTOR" && ( - - )} - - {/* == Jira == */} - {connector.connector_type === "JIRA_CONNECTOR" && ( -
- - - -
- )} - - {/* == Confluence == */} - {connector.connector_type === "CONFLUENCE_CONNECTOR" && ( -
- - - -
- )} - - {/* == ClickUp == */} - {connector.connector_type === "CLICKUP_CONNECTOR" && ( - - )} - - {/* == Linkup == */} - {connector.connector_type === "LINKUP_API" && ( - - )} - - {/* == Discord == */} - {connector.connector_type === "DISCORD_CONNECTOR" && ( - - )} - - {/* == Luma == */} - {connector.connector_type === "LUMA_CONNECTOR" && ( - - )} - - {/* == Elasticsearch == */} - {connector.connector_type === "ELASTICSEARCH_CONNECTOR" && ( - - )} - - {/* == Webcrawler == */} - {connector.connector_type === "WEBCRAWLER_CONNECTOR" && ( -
- - ( - - URLs to Crawl - -