mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
feat: skip edit view for live connectors, disconnect directly from accounts list
This commit is contained in:
parent
80a349ea11
commit
9bb117ffa7
3 changed files with 45 additions and 24 deletions
|
|
@ -123,8 +123,9 @@ export const ConnectorIndicator = forwardRef<ConnectorIndicatorHandle, Connector
|
||||||
handleSkipIndexing,
|
handleSkipIndexing,
|
||||||
handleStartEdit,
|
handleStartEdit,
|
||||||
handleSaveConnector,
|
handleSaveConnector,
|
||||||
handleDisconnectConnector,
|
handleDisconnectConnector,
|
||||||
handleBackFromEdit,
|
handleDisconnectFromList,
|
||||||
|
handleBackFromEdit,
|
||||||
handleBackFromConnect,
|
handleBackFromConnect,
|
||||||
handleBackFromYouTube,
|
handleBackFromYouTube,
|
||||||
handleViewAccountsList,
|
handleViewAccountsList,
|
||||||
|
|
@ -225,25 +226,27 @@ export const ConnectorIndicator = forwardRef<ConnectorIndicatorHandle, Connector
|
||||||
{isYouTubeView && searchSpaceId ? (
|
{isYouTubeView && searchSpaceId ? (
|
||||||
<YouTubeCrawlerView searchSpaceId={searchSpaceId} onBack={handleBackFromYouTube} />
|
<YouTubeCrawlerView searchSpaceId={searchSpaceId} onBack={handleBackFromYouTube} />
|
||||||
) : viewingMCPList ? (
|
) : viewingMCPList ? (
|
||||||
<ConnectorAccountsListView
|
<ConnectorAccountsListView
|
||||||
connectorType="MCP_CONNECTOR"
|
connectorType="MCP_CONNECTOR"
|
||||||
connectorTitle="MCP Connectors"
|
connectorTitle="MCP Connectors"
|
||||||
connectors={(allConnectors || []) as SearchSourceConnector[]}
|
connectors={(allConnectors || []) as SearchSourceConnector[]}
|
||||||
indexingConnectorIds={indexingConnectorIds}
|
indexingConnectorIds={indexingConnectorIds}
|
||||||
onBack={handleBackFromMCPList}
|
onBack={handleBackFromMCPList}
|
||||||
onManage={handleStartEdit}
|
onManage={handleStartEdit}
|
||||||
onAddAccount={handleAddNewMCPFromList}
|
onDisconnect={(connector) => handleDisconnectFromList(connector, () => refreshConnectors())}
|
||||||
addButtonText="Add New MCP Server"
|
onAddAccount={handleAddNewMCPFromList}
|
||||||
/>
|
addButtonText="Add New MCP Server"
|
||||||
|
/>
|
||||||
) : viewingAccountsType ? (
|
) : viewingAccountsType ? (
|
||||||
<ConnectorAccountsListView
|
<ConnectorAccountsListView
|
||||||
connectorType={viewingAccountsType.connectorType}
|
connectorType={viewingAccountsType.connectorType}
|
||||||
connectorTitle={viewingAccountsType.connectorTitle}
|
connectorTitle={viewingAccountsType.connectorTitle}
|
||||||
connectors={(connectors || []) as SearchSourceConnector[]}
|
connectors={(connectors || []) as SearchSourceConnector[]}
|
||||||
indexingConnectorIds={indexingConnectorIds}
|
indexingConnectorIds={indexingConnectorIds}
|
||||||
onBack={handleBackFromAccountsList}
|
onBack={handleBackFromAccountsList}
|
||||||
onManage={handleStartEdit}
|
onManage={handleStartEdit}
|
||||||
onAddAccount={() => {
|
onDisconnect={(connector) => handleDisconnectFromList(connector, () => refreshConnectors())}
|
||||||
|
onAddAccount={() => {
|
||||||
// Check both OAUTH_CONNECTORS and COMPOSIO_CONNECTORS
|
// Check both OAUTH_CONNECTORS and COMPOSIO_CONNECTORS
|
||||||
const oauthConnector =
|
const oauthConnector =
|
||||||
OAUTH_CONNECTORS.find(
|
OAUTH_CONNECTORS.find(
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import { SummaryConfig } from "../../components/summary-config";
|
||||||
import { VisionLLMConfig } from "../../components/vision-llm-config";
|
import { VisionLLMConfig } from "../../components/vision-llm-config";
|
||||||
import { LIVE_CONNECTOR_TYPES, getReauthEndpoint } from "../../constants/connector-constants";
|
import { LIVE_CONNECTOR_TYPES, getReauthEndpoint } from "../../constants/connector-constants";
|
||||||
import { getConnectorDisplayName } from "../../tabs/all-connectors-tab";
|
import { getConnectorDisplayName } from "../../tabs/all-connectors-tab";
|
||||||
|
import { MCPServiceConfig } from "../components/mcp-service-config";
|
||||||
import { type ConnectorConfigProps, getConnectorConfigComponent } from "../index";
|
import { type ConnectorConfigProps, getConnectorConfigComponent } from "../index";
|
||||||
|
|
||||||
interface ConnectorEditViewProps {
|
interface ConnectorEditViewProps {
|
||||||
|
|
@ -110,10 +111,7 @@ export const ConnectorEditView: FC<ConnectorEditViewProps> = ({
|
||||||
|
|
||||||
// Get connector-specific config component (MCP-backed connectors use a generic view)
|
// Get connector-specific config component (MCP-backed connectors use a generic view)
|
||||||
const ConnectorConfigComponent = useMemo(() => {
|
const ConnectorConfigComponent = useMemo(() => {
|
||||||
if (isMCPBacked) {
|
if (isMCPBacked) return MCPServiceConfig;
|
||||||
const { MCPServiceConfig } = require("../components/mcp-service-config");
|
|
||||||
return MCPServiceConfig as FC<ConnectorConfigProps>;
|
|
||||||
}
|
|
||||||
return getConnectorConfigComponent(connector.connector_type);
|
return getConnectorConfigComponent(connector.connector_type);
|
||||||
}, [connector.connector_type, isMCPBacked]);
|
}, [connector.connector_type, isMCPBacked]);
|
||||||
const [isScrolled, setIsScrolled] = useState(false);
|
const [isScrolled, setIsScrolled] = useState(false);
|
||||||
|
|
|
||||||
|
|
@ -1311,6 +1311,25 @@ export const useConnectorDialog = () => {
|
||||||
[editingConnector, searchSpaceId, deleteConnector, cameFromMCPList, setIsOpen]
|
[editingConnector, searchSpaceId, deleteConnector, cameFromMCPList, setIsOpen]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleDisconnectFromList = useCallback(
|
||||||
|
async (connector: SearchSourceConnector, refreshConnectors: () => void) => {
|
||||||
|
if (!searchSpaceId) return;
|
||||||
|
try {
|
||||||
|
await deleteConnector({ id: connector.id });
|
||||||
|
trackConnectorDeleted(Number(searchSpaceId), connector.connector_type, connector.id);
|
||||||
|
toast.success(`${connector.name} disconnected successfully`);
|
||||||
|
refreshConnectors();
|
||||||
|
queryClient.invalidateQueries({
|
||||||
|
queryKey: cacheKeys.logs.summary(Number(searchSpaceId)),
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error disconnecting connector:", error);
|
||||||
|
toast.error("Failed to disconnect connector");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[searchSpaceId, deleteConnector]
|
||||||
|
);
|
||||||
|
|
||||||
// Handle quick index (index with selected date range, or backend defaults if none selected)
|
// Handle quick index (index with selected date range, or backend defaults if none selected)
|
||||||
const handleQuickIndexConnector = useCallback(
|
const handleQuickIndexConnector = useCallback(
|
||||||
async (
|
async (
|
||||||
|
|
@ -1484,6 +1503,7 @@ export const useConnectorDialog = () => {
|
||||||
handleStartEdit,
|
handleStartEdit,
|
||||||
handleSaveConnector,
|
handleSaveConnector,
|
||||||
handleDisconnectConnector,
|
handleDisconnectConnector,
|
||||||
|
handleDisconnectFromList,
|
||||||
handleBackFromEdit,
|
handleBackFromEdit,
|
||||||
handleBackFromConnect,
|
handleBackFromConnect,
|
||||||
handleBackFromYouTube,
|
handleBackFromYouTube,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue