import { useEffect, useState } from "react"; import { useRouter } from "next/router"; import queryString from "query-string"; import { useCreateIntegration } from "@app/hooks/api"; import { Button, Card, CardTitle, FormControl, Input, Select, SelectItem } from "../../../components/v2"; import { useGetIntegrationAuthApps, useGetIntegrationAuthById } from "../../../hooks/api/integrationAuth"; import { useGetWorkspaceById } from "../../../hooks/api/workspace"; export default function SupabaseCreateIntegrationPage() { const router = useRouter(); const { mutateAsync } = useCreateIntegration(); const { integrationAuthId } = queryString.parse(router.asPath.split("?")[1]); const { data: workspace } = useGetWorkspaceById(localStorage.getItem("projectData.id") ?? ""); const { data: integrationAuth } = useGetIntegrationAuthById((integrationAuthId as string) ?? ""); const { data: integrationAuthApps } = useGetIntegrationAuthApps({ integrationAuthId: (integrationAuthId as string) ?? "" }); const [selectedSourceEnvironment, setSelectedSourceEnvironment] = useState(""); const [secretPath, setSecretPath] = useState("/"); const [targetApp, setTargetApp] = useState(""); const [isLoading, setIsLoading] = useState(false); useEffect(() => { if (workspace) { setSelectedSourceEnvironment(workspace.environments[0].slug); } }, [workspace]); useEffect(() => { if (integrationAuthApps) { if (integrationAuthApps.length > 0) { setTargetApp(integrationAuthApps[0].name); } else { setTargetApp("none"); } } }, [integrationAuthApps]); const handleButtonClick = async () => { try { if (!integrationAuth?.id) return; setIsLoading(true); await mutateAsync({ integrationAuthId: integrationAuth?.id, isActive: true, app: targetApp, appId: integrationAuthApps?.find( (integrationAuthApp) => integrationAuthApp.name === targetApp )?.appId, sourceEnvironment: selectedSourceEnvironment, secretPath }); setIsLoading(false); router.push(`/integrations/${localStorage.getItem("projectData.id")}`); } catch (err) { console.error(err); } }; return integrationAuth && workspace && selectedSourceEnvironment && integrationAuthApps && targetApp ? (