import React from "react"; import Image from "next/image"; import { useRouter } from "next/router"; import { faCheck, faX, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import deleteIntegrationAuth from "../../pages/api/integrations/DeleteIntegrationAuth"; interface CloudIntegrationOption { isAvailable: boolean; name: string; type: string; clientId: string; docsLink: string; slug: string; } interface IntegrationAuth { _id: string; integration: string; } interface Props { cloudIntegrationOption: CloudIntegrationOption; setSelectedIntegrationOption: (cloudIntegration: CloudIntegrationOption) => void; integrationOptionPress: (cloudIntegrationOption: CloudIntegrationOption) => void; integrationAuths: IntegrationAuth[]; } const CloudIntegration = ({ cloudIntegrationOption, setSelectedIntegrationOption, integrationOptionPress, integrationAuths }: Props) => { const router = useRouter(); return integrationAuths ? (
{ if (!cloudIntegrationOption.isAvailable) return; setSelectedIntegrationOption(cloudIntegrationOption); integrationOptionPress(cloudIntegrationOption); }} key={cloudIntegrationOption.name} > integration logo {cloudIntegrationOption.name.split(" ").length > 2 ? (
{cloudIntegrationOption.name.split(" ")[0]}
{cloudIntegrationOption.name.split(" ")[1]}{" "} {cloudIntegrationOption.name.split(" ")[2]}
) : (
{cloudIntegrationOption.name}
)} {cloudIntegrationOption.isAvailable && integrationAuths .map((authorization) => authorization.integration) .includes(cloudIntegrationOption.name.toLowerCase()) && (
{ event.stopPropagation(); deleteIntegrationAuth({ integrationAuthId: integrationAuths .filter( (authorization) => authorization.integration == cloudIntegrationOption.name.toLowerCase() ) .map((authorization) => authorization._id)[0], }); router.reload(); }} className="cursor-pointer w-max bg-red py-0.5 px-2 rounded-b-md text-xs flex flex-row items-center opacity-0 group-hover:opacity-100 duration-200" > Revoke
Authorized
)} {!cloudIntegrationOption.isAvailable && (
Coming Soon
)}
) :
} export default CloudIntegration;