File size: 1,587 Bytes
cd8bd0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"use client";

import { SlackConfigForm, type SlackConfig } from "./integrations/SlackConfigForm";
import { TelegramConfigForm, type TelegramConfig } from "./integrations/TelegramConfigForm";
import { DiscordConfigForm, type DiscordConfig } from "./integrations/DiscordConfigForm";
import { CustomConfigForm, type CustomConfig } from "./integrations/CustomConfigForm";
import type { WebhookKind } from "../shared/IntegrationCard";

interface Step2ConfigureIntegrationProps {
  kind: WebhookKind;
  slack: SlackConfig;
  telegram: TelegramConfig;
  discord: DiscordConfig;
  custom: CustomConfig;
  onChangeSlack: (v: SlackConfig) => void;
  onChangeTelegram: (v: TelegramConfig) => void;
  onChangeDiscord: (v: DiscordConfig) => void;
  onChangeCustom: (v: CustomConfig) => void;
  t: (key: string, opts?: Record<string, unknown>) => string;
  isEditing?: boolean;
}

export function Step2ConfigureIntegration({
  kind,
  slack,
  telegram,
  discord,
  custom,
  onChangeSlack,
  onChangeTelegram,
  onChangeDiscord,
  onChangeCustom,
  t,
  isEditing,
}: Step2ConfigureIntegrationProps) {
  if (kind === "slack") return <SlackConfigForm value={slack} onChange={onChangeSlack} t={t} />;
  if (kind === "telegram")
    return <TelegramConfigForm value={telegram} onChange={onChangeTelegram} t={t} />;
  if (kind === "discord")
    return <DiscordConfigForm value={discord} onChange={onChangeDiscord} t={t} />;
  return <CustomConfigForm value={custom} onChange={onChangeCustom} t={t} isEditing={isEditing} />;
}

export type { SlackConfig, TelegramConfig, DiscordConfig, CustomConfig };