diff --git a/surfsense_web/components/chat/ChatInputGroup.tsx b/surfsense_web/components/chat/ChatInputGroup.tsx index 080bd65d4..085fe2b72 100644 --- a/surfsense_web/components/chat/ChatInputGroup.tsx +++ b/surfsense_web/components/chat/ChatInputGroup.tsx @@ -5,6 +5,7 @@ import { useAtom, useAtomValue } from "jotai"; import { Brain, Check, FolderOpen, Minus, Plus, PlusCircle, Zap } from "lucide-react"; import { useParams, useRouter } from "next/navigation"; import React, { Suspense, useCallback, useMemo, useState } from "react"; +import { connectorsAtom } from "@/atoms/connectors/connector-query.atoms"; import { documentTypeCountsAtom } from "@/atoms/documents/document-query.atoms"; import { updateLLMPreferencesMutationAtom } from "@/atoms/llm-config/llm-config-mutation.atoms"; import { @@ -34,7 +35,6 @@ import { import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; import { getConnectorIcon } from "@/contracts/enums/connectorIcons"; import type { Document } from "@/contracts/types/document.types"; -import { useSearchSourceConnectors } from "@/hooks/use-search-source-connectors"; const DocumentSelector = React.memo( ({ @@ -143,15 +143,9 @@ const ConnectorSelector = React.memo( const isLoaded = !!documentTypeCountsData; - // Fetch live search connectors immediately (non-indexable) - const { - connectors: searchConnectors, - isLoading: connectorsLoading, - isLoaded: connectorsLoaded, - fetchConnectors, - } = useSearchSourceConnectors(false, Number(search_space_id)); + const { data: searchConnectors = [], isLoading: connectorsLoading } = + useAtomValue(connectorsAtom); - // Filter for non-indexable connectors (live search) const liveSearchConnectors = React.useMemo( () => searchConnectors.filter((connector) => !connector.is_indexable), [searchConnectors] diff --git a/surfsense_web/hooks/use-connector-edit-page.ts b/surfsense_web/hooks/use-connector-edit-page.ts index f116d4170..a87d23559 100644 --- a/surfsense_web/hooks/use-connector-edit-page.ts +++ b/surfsense_web/hooks/use-connector-edit-page.ts @@ -1,8 +1,11 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { useAtomValue } from "jotai"; import { useRouter } from "next/navigation"; import { useCallback, useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; +import { updateConnectorMutationAtom } from "@/atoms/connectors/connector-mutation.atoms"; +import { connectorsAtom } from "@/atoms/connectors/connector-query.atoms"; import { type EditConnectorFormValues, type EditMode, @@ -11,10 +14,8 @@ import { type GithubRepo, githubPatSchema, } from "@/components/editConnector/types"; -import { - type SearchSourceConnector, - useSearchSourceConnectors, -} from "@/hooks/use-search-source-connectors"; +import type { EnumConnectorName } from "@/contracts/enums/connector"; +import type { SearchSourceConnector } from "@/hooks/use-search-source-connectors"; import { authenticatedFetch } from "@/lib/auth-utils"; const normalizeListInput = (value: unknown): string[] => { @@ -51,11 +52,8 @@ const normalizeBoolean = (value: unknown): boolean | null => { export function useConnectorEditPage(connectorId: number, searchSpaceId: string) { const router = useRouter(); - const { - connectors, - updateConnector, - isLoading: connectorsLoading, - } = useSearchSourceConnectors(false, parseInt(searchSpaceId)); + const { data: connectors = [], isLoading: connectorsLoading } = useAtomValue(connectorsAtom); + const { mutateAsync: updateConnector } = useAtomValue(updateConnectorMutationAtom); // State managed by the hook const [connector, setConnector] = useState(null); @@ -544,7 +542,13 @@ export function useConnectorEditPage(connectorId: number, searchSpaceId: string) } try { - await updateConnector(connectorId, updatePayload); + await updateConnector({ + id: connectorId, + data: { + ...updatePayload, + connector_type: connector.connector_type as EnumConnectorName, + }, + }); toast.success("Connector updated!"); const newlySavedConfig = updatePayload.config || originalConfig; setOriginalConfig(newlySavedConfig);