'use client'; import { api } from '@/trpc/client'; import { DiscordIntegrationForm } from '@/components/integrations/forms/discord-integration'; import { SlackIntegrationForm } from '@/components/integrations/forms/slack-integration'; import { WebhookIntegrationForm } from '@/components/integrations/forms/webhook-integration'; import { IntegrationCardContent } from '@/components/integrations/integration-card'; import { INTEGRATIONS } from '@/components/integrations/integrations'; import { SheetContent } from '@/components/ui/sheet'; import type { IIntegrationConfig } from '@openpanel/validation'; import { useQueryClient } from '@tanstack/react-query'; import { getQueryKey } from '@trpc/react-query'; import { useQueryState } from 'nuqs'; import { toast } from 'sonner'; import { popModal } from '.'; import { ModalHeader } from './Modal/Container'; interface Props { id?: string; type: IIntegrationConfig['type']; } export default function AddIntegration(props: Props) { const query = api.integration.get.useQuery( { id: props.id ?? '', }, { enabled: !!props.id, }, ); const integration = INTEGRATIONS.find((i) => i.type === props.type); const renderCard = () => { if (!integration) { return null; } return (