import React, { useEffect, useState } from "react"; import Head from "next/head"; import Image from "next/image"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import { faArrowRight, faCheck, faRotate, faX, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import Button from "~/components/basic/buttons/Button"; import ListBox from "~/components/basic/Listbox"; import NavHeader from "~/components/navigation/NavHeader"; import getSecretsForProject from "~/components/utilities/secrets/getSecretsForProject"; import pushKeysIntegration from "~/components/utilities/secrets/pushKeysIntegration"; import guidGenerator from "~/utilities/randomId"; import deleteIntegration from "../api/integrations/DeleteIntegration"; import deleteIntegrationAuth from "../api/integrations/DeleteIntegrationAuth"; import getIntegrationApps from "../api/integrations/GetIntegrationApps"; import getIntegrations from "../api/integrations/GetIntegrations"; import getWorkspaceAuthorizations from "../api/integrations/getWorkspaceAuthorizations"; import getWorkspaceIntegrations from "../api/integrations/getWorkspaceIntegrations"; import startIntegration from "../api/integrations/StartIntegration"; const crypto = require("crypto"); const envMapping = { Development: "dev", Staging: "staging", Production: "prod", Testing: "test", }; const reverseEnvMapping = { dev: "Development", staging: "Staging", prod: "Production", test: "Testing", }; const Integration = ({ projectIntegration }) => { const [integrationEnvironment, setIntegrationEnvironment] = useState( reverseEnvMapping[projectIntegration.environment] ); const [fileState, setFileState] = useState([]); const [data, setData] = useState(); const [isKeyAvailable, setIsKeyAvailable] = useState(true); const router = useRouter(); const [apps, setApps] = useState([]); const [integrationApp, setIntegrationApp] = useState( projectIntegration.app ? projectIntegration.app : apps[0] ); const { t } = useTranslation(); useEffect(async () => { const tempHerokuApps = await getIntegrationApps({ integrationAuthId: projectIntegration.integrationAuth, }); const tempHerokuAppNames = tempHerokuApps.map((app) => app.name); setApps(tempHerokuAppNames); setIntegrationApp( projectIntegration.app ? projectIntegration.app : tempHerokuAppNames[0] ); }, []); return (
{t("integrations:title")}
{t("integrations:description")}
{t("integrations:available")}
{t("integrations:available-text1")}
{t("integrations:available-text2")}