import { WorkflowNode } from "@/domain/workflow"; import { memo } from "react"; import DeployToAliyunOSS from "./DeployToAliyunOss"; import DeployToAliyunALB from "./DeployToAliyunALB"; import DeployToAliyunCDN from "./DeployToAliyunCDN"; import DeployToAliyunCLB from "./DeployToAliyunCLB"; import DeployToAliyunNLB from "./DeployToAliyunNLB"; import DeployToBaiduCloudCDN from "./DeployToBaiduCloudCDN"; import DeployToDogeCloudCDN from "./DeployToDogeCloudCDN"; import DeployToHuaweiCloudCDN from "./DeployToHuaweiCloudCDN"; import DeployToHuaweiCloudELB from "./DeployToHuaweiCloudELB"; import DeployToKubernetesSecret from "./DeployToKubernetesSecret"; import DeployToQiniuCDN from "./DeployToQiniuCDN"; import DeployToWebhook from "./DeployToWebhook"; import DeployToTencentCDN from "./DeployToTencentCDN"; import DeployToTencentCLB from "./DeployToTencentCLB"; import DeployToTencentCOS from "./DeployToTencentCOS"; import DeployToTencentTEO from "./DeployToTencentTEO"; import DeployToSSH from "./DeployToSSH"; import DeployToLocal from "./DeployToLocal"; export type DeployFormProps = { data: WorkflowNode; defaultProivder?: string; }; const DeployForm = ({ data, defaultProivder }: DeployFormProps) => { return <div className="dark:text-stone-200">{getForm(data, defaultProivder)}</div>; }; export default memo(DeployForm); const getForm = (data: WorkflowNode, defaultProivder?: string) => { const provider = defaultProivder || data.config?.providerType; switch (provider) { case "aliyun-oss": return <DeployToAliyunOSS data={data} />; case "aliyun-alb": return <DeployToAliyunALB data={data} />; case "aliyun-cdn": case "aliyun-dcdn": return <DeployToAliyunCDN data={data} />; case "aliyun-clb": return <DeployToAliyunCLB data={data} />; case "aliyun-nlb": return <DeployToAliyunNLB data={data} />; case "baiducloud-cdn": return <DeployToBaiduCloudCDN data={data} />; case "dogecloud-cdn": return <DeployToDogeCloudCDN data={data} />; case "huaweicloud-cdn": return <DeployToHuaweiCloudCDN data={data} />; case "huaweicloud-elb": return <DeployToHuaweiCloudELB data={data} />; case "k8s-secret": return <DeployToKubernetesSecret data={data} />; case "qiniu-cdn": return <DeployToQiniuCDN data={data} />; case "webhook": return <DeployToWebhook data={data} />; case "tencent-cdn": case "tencent-ecdn": return <DeployToTencentCDN data={data} />; case "tencent-clb": return <DeployToTencentCLB data={data} />; case "tencent-cos": return <DeployToTencentCOS data={data} />; case "tencent-teo": return <DeployToTencentTEO data={data} />; case "ssh": return <DeployToSSH data={data} />; case "local": return <DeployToLocal data={data} />; default: return <></>; } };