import { useEffect, useState } from 'react'; import { useRouter } from 'next/router'; import queryString from 'query-string'; import { Button, Card, CardTitle, FormControl, Select, SelectItem } from '../../../components/v2'; import { useGetIntegrationAuthApps, useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth'; import { useGetWorkspaceById } from '../../../hooks/api/workspace'; import createIntegration from '../../api/integrations/createIntegration'; export default function HerokuCreateIntegrationPage() { const router = useRouter(); 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 [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 { setIsLoading(true); if (!integrationAuth?._id) return; await createIntegration({ integrationAuthId: integrationAuth?._id, isActive: true, app: targetApp, appId: null, sourceEnvironment: selectedSourceEnvironment, targetEnvironment: null, targetEnvironmentId: null, targetService: null, targetServiceId: null, owner: null, path: null, region: null }); setIsLoading(false); router.push(`/integrations/${localStorage.getItem('projectData.id')}`); } catch (err) { console.error(err); } }; return integrationAuth && workspace && selectedSourceEnvironment && integrationAuthApps && targetApp ? (