diff --git a/ui/components/providers/provider-info.tsx b/ui/components/providers/provider-info.tsx index f65d737f58..ac96d29ef2 100644 --- a/ui/components/providers/provider-info.tsx +++ b/ui/components/providers/provider-info.tsx @@ -1,3 +1,4 @@ +import { Tooltip } from "@nextui-org/react"; import React from "react"; import { ConnectionFalse, ConnectionPending, ConnectionTrue } from "../icons"; @@ -20,21 +21,27 @@ export const ProviderInfo: React.FC = ({ switch (connected) { case true: return ( -
- -
+ +
+ +
+
); case false: return ( -
- -
+ +
+ +
+
); case null: return ( -
- -
+ +
+ +
+
); default: return ; diff --git a/ui/components/providers/table/data-table-row-actions.tsx b/ui/components/providers/table/data-table-row-actions.tsx index 3a7cfc37f1..b56f96f88a 100644 --- a/ui/components/providers/table/data-table-row-actions.tsx +++ b/ui/components/providers/table/data-table-row-actions.tsx @@ -37,6 +37,7 @@ export function DataTableRowActions({ const router = useRouter(); const [isEditOpen, setIsEditOpen] = useState(false); const [isDeleteOpen, setIsDeleteOpen] = useState(false); + const [loading, setLoading] = useState(false); const providerId = (row.original as { id: string }).id; const providerType = (row.original as any).attributes?.provider; const providerAlias = (row.original as any).attributes?.alias; @@ -44,11 +45,15 @@ export function DataTableRowActions({ (row.original as any).relationships?.secret?.data?.id || null; const handleTestConnection = async () => { + setLoading(true); const formData = new FormData(); formData.append("providerId", providerId); await checkConnectionProvider(formData); + setLoading(false); }; + const hasSecret = (row.original as any).relationships?.secret?.data; + return ( <> ({ - + } onPress={() => router.push( - `/providers/update-credentials?type=${providerType}&id=${providerId}${providerSecretId ? `&secretId=${providerSecretId}` : ""}`, + `/providers/${hasSecret ? "update" : "add"}-credentials?type=${providerType}&id=${providerId}${providerSecretId ? `&secretId=${providerSecretId}` : ""}`, ) } + closeOnSelect={true} > - Update Credentials + {hasSecret ? "Update Credentials" : "Add Credentials"} } onPress={handleTestConnection} + isDisabled={!hasSecret || loading} + closeOnSelect={false} > - Test Connection + {loading ? "Testing..." : "Test Connection"} ({ textValue="Edit Provider" startContent={} onPress={() => setIsEditOpen(true)} + closeOnSelect={true} > Edit Provider Alias @@ -133,6 +147,7 @@ export function DataTableRowActions({ /> } onPress={() => setIsDeleteOpen(true)} + closeOnSelect={true} > Delete Provider