From 8f39f953f85613fac7a47e6fca8317bd86d6f13e Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Fri, 4 Oct 2024 16:04:00 -0700 Subject: [PATCH] fix PR review comments for databricks integration --- .../src/pages/integrations/databricks/authorize.tsx | 10 +++------- .../src/pages/integrations/databricks/create.tsx | 12 ++---------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/frontend/src/pages/integrations/databricks/authorize.tsx b/frontend/src/pages/integrations/databricks/authorize.tsx index a2b179f9a..5ea5f664a 100644 --- a/frontend/src/pages/integrations/databricks/authorize.tsx +++ b/frontend/src/pages/integrations/databricks/authorize.tsx @@ -12,13 +12,12 @@ import { Button, Card, CardTitle, FormControl, Input } from "../../../components export default function DatabricksCreateIntegrationPage() { const router = useRouter(); - const { mutateAsync } = useSaveIntegrationAccessToken(); + const { mutateAsync, isLoading } = useSaveIntegrationAccessToken(); const [apiKey, setApiKey] = useState(""); const [instanceURL, setInstanceURL] = useState(""); const [apiKeyErrorText, setApiKeyErrorText] = useState(""); const [instanceURLErrorText, setInstanceURLErrorText] = useState(""); - const [isLoading, setIsLoading] = useState(false); const handleButtonClick = async () => { try { @@ -33,17 +32,13 @@ export default function DatabricksCreateIntegrationPage() { return; } - setIsLoading(true); - const integrationAuth = await mutateAsync({ workspaceId: localStorage.getItem("projectData.id"), integration: "databricks", - url: instanceURL, + url: instanceURL.replace(/\/$/, ""), accessToken: apiKey }); - setIsLoading(false); - router.push(`/integrations/databricks/create?integrationAuthId=${integrationAuth.id}`); } catch (err) { console.error(err); @@ -107,6 +102,7 @@ export default function DatabricksCreateIntegrationPage() { variant="outline_bg" className="mb-6 mt-2 ml-auto mr-6 w-min" isLoading={isLoading} + isDisabled={isLoading} > Connect to Databricks diff --git a/frontend/src/pages/integrations/databricks/create.tsx b/frontend/src/pages/integrations/databricks/create.tsx index f60c31a4c..e9ff0a2a1 100644 --- a/frontend/src/pages/integrations/databricks/create.tsx +++ b/frontend/src/pages/integrations/databricks/create.tsx @@ -32,7 +32,7 @@ import { useGetWorkspaceById } from "../../../hooks/api/workspace"; export default function DatabricksCreateIntegrationPage() { const router = useRouter(); - const { mutateAsync } = useCreateIntegration(); + const { mutateAsync, isLoading } = useCreateIntegration(); const { integrationAuthId } = queryString.parse(router.asPath.split("?")[1]); @@ -50,8 +50,6 @@ export default function DatabricksCreateIntegrationPage() { const [targetScope, setTargetScope] = useState(""); const [secretPath, setSecretPath] = useState("/"); - const [isLoading, setIsLoading] = useState(false); - useEffect(() => { if (workspace) { setSelectedSourceEnvironment(workspace.environments[0].slug); @@ -67,12 +65,9 @@ export default function DatabricksCreateIntegrationPage() { type: "error", text: "Please select a scope" }); - setIsLoading(false); return; } - setIsLoading(true); - const selectedScope = integrationAuthScopes?.find( (integrationAuthScope) => integrationAuthScope.name === targetScope ); @@ -82,7 +77,6 @@ export default function DatabricksCreateIntegrationPage() { type: "error", text: "Invalid scope selected" }); - setIsLoading(false); return; } @@ -94,8 +88,6 @@ export default function DatabricksCreateIntegrationPage() { secretPath }); - setIsLoading(false); - router.push(`/integrations/${localStorage.getItem("projectData.id")}`); } catch (err) { console.error(err); @@ -193,7 +185,7 @@ export default function DatabricksCreateIntegrationPage() { variant="outline_bg" className="mb-6 mt-2 ml-auto mr-6 w-min" isLoading={isLoading} - isDisabled={integrationAuthScopes.length === 0} + isDisabled={integrationAuthScopes.length === 0 || isLoading} > Create Integration