import { Suspense } from "react"; import { Link, useNavigate } from "@tanstack/react-router"; import { useIntegrationPlugins } from "@executor-js/sdk/client"; import { trackEvent } from "../api/analytics"; // --------------------------------------------------------------------------- // Page // --------------------------------------------------------------------------- export function AddIntegrationPage(props: { pluginKey: string; url?: string; preset?: string; namespace?: string; }) { const { pluginKey, url, preset, namespace } = props; const navigate = useNavigate(); const integrationPlugins = useIntegrationPlugins(); const plugin = integrationPlugins.find((p) => p.key === pluginKey); if (!plugin) { return (

Unknown integration type: {pluginKey}

This integration plugin is not registered.

Back to integrations
); } const AddComponent = plugin.add; return (
{ trackEvent("integration_added", { plugin_key: pluginKey, ...(slug ? { integration_slug: slug } : {}), }); void navigate( slug ? { to: "/{-$orgSlug}/integrations/$namespace", params: { namespace: slug } } : { to: "/{-$orgSlug}" }, ); }} onCancel={() => { trackEvent("integration_add_cancelled", { plugin_key: pluginKey }); void navigate({ to: "/{-$orgSlug}" }); }} />
); }