refactor: clean code

This commit is contained in:
Fu Diwei
2025-04-24 21:04:55 +08:00
parent 7478dd7f47
commit 794695c313
25 changed files with 616 additions and 613 deletions

View File

@@ -31,10 +31,10 @@ import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect";
import ModalForm from "@/components/ModalForm";
import MultipleInput from "@/components/MultipleInput";
import ApplyCAProviderSelect from "@/components/provider/ApplyCAProviderSelect";
import ApplyDNSProviderSelect from "@/components/provider/ApplyDNSProviderSelect";
import AcmeDns01ProviderSelect from "@/components/provider/AcmeDns01ProviderSelect";
import CAProviderSelect from "@/components/provider/CAProviderSelect";
import Show from "@/components/Show";
import { ACCESS_USAGES, APPLY_DNS_PROVIDERS, accessProvidersMap, applyCAProvidersMap, applyDNSProvidersMap } from "@/domain/provider";
import { ACCESS_USAGES, ACME_DNS01_PROVIDERS, accessProvidersMap, acmeDns01ProvidersMap, caProvidersMap } from "@/domain/provider";
import { type WorkflowNodeConfigForApply } from "@/domain/workflow";
import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks";
import { useAccessesStore } from "@/stores/access";
@@ -99,7 +99,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
.refine((v) => {
if (!fieldCAProvider) return true;
const provider = applyCAProvidersMap.get(fieldCAProvider);
const provider = caProvidersMap.get(fieldCAProvider);
return !!provider?.builtin || !!v;
}, t("workflow_node.apply.form.ca_provider_access.placeholder")),
caProviderConfig: z.any().nullish(),
@@ -155,7 +155,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
// 如果对应多个(如 AWS 的 Route53、Lightsail腾讯云的 DNS、EdgeOne 等),则显示。
if (fieldProviderAccessId) {
const access = accesses.find((e) => e.id === fieldProviderAccessId);
const providers = Array.from(applyDNSProvidersMap.values()).filter((e) => e.provider === access?.provider);
const providers = Array.from(acmeDns01ProvidersMap.values()).filter((e) => e.provider === access?.provider);
setShowProvider(providers.length > 1);
} else {
setShowProvider(false);
@@ -166,7 +166,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
useEffect(() => {
// 内置的 CA 提供商(如 Let's Encrypt无需显示授权信息字段
if (fieldCAProvider) {
const provider = applyCAProvidersMap.get(fieldCAProvider);
const provider = caProvidersMap.get(fieldCAProvider);
setShowCAProviderAccess(!provider?.builtin);
} else {
setShowCAProviderAccess(false);
@@ -188,16 +188,16 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
NOTICE: If you add new child component, please keep ASCII order.
*/
switch (fieldProvider) {
case APPLY_DNS_PROVIDERS.AWS:
case APPLY_DNS_PROVIDERS.AWS_ROUTE53:
case ACME_DNS01_PROVIDERS.AWS:
case ACME_DNS01_PROVIDERS.AWS_ROUTE53:
return <ApplyNodeConfigFormAWSRoute53Config {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.HUAWEICLOUD:
case APPLY_DNS_PROVIDERS.HUAWEICLOUD_DNS:
case ACME_DNS01_PROVIDERS.HUAWEICLOUD:
case ACME_DNS01_PROVIDERS.HUAWEICLOUD_DNS:
return <ApplyNodeConfigFormHuaweiCloudDNSConfig {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.JDCLOUD:
case APPLY_DNS_PROVIDERS.JDCLOUD_DNS:
case ACME_DNS01_PROVIDERS.JDCLOUD:
case ACME_DNS01_PROVIDERS.JDCLOUD_DNS:
return <ApplyNodeConfigFormJDCloudDNSConfig {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.TENCENTCLOUD_EO:
case ACME_DNS01_PROVIDERS.TENCENTCLOUD_EO:
return <ApplyNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />;
}
}, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]);
@@ -210,7 +210,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId);
onValuesChange?.(formInst.getFieldsValue(true));
} else {
if (applyDNSProvidersMap.get(fieldProvider)?.provider !== applyDNSProvidersMap.get(value)?.provider) {
if (acmeDns01ProvidersMap.get(fieldProvider)?.provider !== acmeDns01ProvidersMap.get(value)?.provider) {
formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true));
}
@@ -222,7 +222,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
// 切换授权信息时联动 DNS 提供商
const access = accesses.find((access) => access.id === value);
const provider = Array.from(applyDNSProvidersMap.values()).find((provider) => provider.provider === access?.provider);
const provider = Array.from(acmeDns01ProvidersMap.values()).find((provider) => provider.provider === access?.provider);
if (fieldProvider !== provider?.type) {
formInst.setFieldValue("provider", provider?.type);
onValuesChange?.(formInst.getFieldsValue(true));
@@ -243,7 +243,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
formInst.setFieldValue("caProviderAccessId", initialValues?.caProviderAccessId);
onValuesChange?.(formInst.getFieldsValue(true));
} else {
if (applyCAProvidersMap.get(fieldCAProvider)?.provider !== applyCAProvidersMap.get(value!)?.provider) {
if (caProvidersMap.get(fieldCAProvider)?.provider !== caProvidersMap.get(value!)?.provider) {
formInst.setFieldValue("caProviderAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true));
}
@@ -328,7 +328,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</Form.Item>
<Form.Item name="provider" label={t("workflow_node.apply.form.provider.label")} hidden={!showProvider} rules={[formRule]}>
<ApplyDNSProviderSelect
<AcmeDns01ProviderSelect
disabled={!showProvider}
filter={(record) => {
if (fieldProviderAccessId) {
@@ -413,7 +413,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</div>
</label>
<Form.Item name="caProvider" rules={[formRule]}>
<ApplyCAProviderSelect
<CAProviderSelect
allowClear
placeholder={t("workflow_node.apply.form.ca_provider.placeholder")}
showSearch
@@ -431,7 +431,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</div>
<div className="text-right">
<AccessEditModal
data={{ provider: applyCAProvidersMap.get(fieldCAProvider!)?.provider }}
data={{ provider: caProvidersMap.get(fieldCAProvider!)?.provider }}
range="ca-only"
scene="add"
trigger={
@@ -454,7 +454,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
<AccessSelect
filter={(record) => {
if (fieldCAProvider) {
return applyCAProvidersMap.get(fieldCAProvider)?.provider === record.provider;
return caProvidersMap.get(fieldCAProvider)?.provider === record.provider;
}
const provider = accessProvidersMap.get(record.provider);

View File

@@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next";
import { Avatar, Flex, Typography } from "antd";
import { produce } from "immer";
import { deployProvidersMap } from "@/domain/provider";
import { deploymentProvidersMap } from "@/domain/provider";
import { type WorkflowNodeConfigForDeploy, WorkflowNodeType } from "@/domain/workflow";
import { useZustandShallowSelector } from "@/hooks";
import { useWorkflowStore } from "@/stores/workflow";
@@ -43,7 +43,7 @@ const DeployNode = ({ node, disabled }: DeployNodeProps) => {
}
const config = (node.config as WorkflowNodeConfigForDeploy) ?? {};
const provider = deployProvidersMap.get(config.provider);
const provider = deploymentProvidersMap.get(config.provider);
return (
<Flex className="size-full overflow-hidden" align="center" gap={8}>
<Avatar src={provider?.icon} size="small" />

View File

@@ -7,10 +7,10 @@ import { z } from "zod";
import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect";
import DeployProviderPicker from "@/components/provider/DeployProviderPicker.tsx";
import DeployProviderSelect from "@/components/provider/DeployProviderSelect.tsx";
import DeploymentProviderPicker from "@/components/provider/DeploymentProviderPicker.tsx";
import DeploymentProviderSelect from "@/components/provider/DeploymentProviderSelect.tsx";
import Show from "@/components/Show";
import { ACCESS_USAGES, DEPLOY_PROVIDERS, accessProvidersMap, deployProvidersMap } from "@/domain/provider";
import { ACCESS_USAGES, DEPLOYMENT_PROVIDERS, accessProvidersMap, deploymentProvidersMap } from "@/domain/provider";
import { type WorkflowNode, type WorkflowNodeConfigForDeploy } from "@/domain/workflow";
import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks";
import { useWorkflowStore } from "@/stores/workflow";
@@ -133,7 +133,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
.refine((v) => {
if (!fieldProvider) return true;
const provider = deployProvidersMap.get(fieldProvider);
const provider = deploymentProvidersMap.get(fieldProvider);
return !!provider?.builtin || !!v;
}, t("workflow_node.deploy.form.provider_access.placeholder")),
providerConfig: z.any().nullish(),
@@ -151,7 +151,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
useEffect(() => {
// 内置的部署提供商(如本地部署)无需显示授权信息字段
if (fieldProvider) {
const provider = deployProvidersMap.get(fieldProvider);
const provider = deploymentProvidersMap.get(fieldProvider);
setShowProviderAccess(!provider?.builtin);
} else {
setShowProviderAccess(false);
@@ -173,145 +173,145 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
NOTICE: If you add new child component, please keep ASCII order.
*/
switch (fieldProvider) {
case DEPLOY_PROVIDERS["1PANEL_CONSOLE"]:
case DEPLOYMENT_PROVIDERS["1PANEL_CONSOLE"]:
return <DeployNodeConfigForm1PanelConsoleConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS["1PANEL_SITE"]:
case DEPLOYMENT_PROVIDERS["1PANEL_SITE"]:
return <DeployNodeConfigForm1PanelSiteConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_ALB:
case DEPLOYMENT_PROVIDERS.ALIYUN_ALB:
return <DeployNodeConfigFormAliyunALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_APIGW:
case DEPLOYMENT_PROVIDERS.ALIYUN_APIGW:
return <DeployNodeConfigFormAliyunAPIGWConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CAS:
case DEPLOYMENT_PROVIDERS.ALIYUN_CAS:
return <DeployNodeConfigFormAliyunCASConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CAS_DEPLOY:
case DEPLOYMENT_PROVIDERS.ALIYUN_CAS_DEPLOY:
return <DeployNodeConfigFormAliyunCASDeployConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CLB:
case DEPLOYMENT_PROVIDERS.ALIYUN_CLB:
return <DeployNodeConfigFormAliyunCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CDN:
case DEPLOYMENT_PROVIDERS.ALIYUN_CDN:
return <DeployNodeConfigFormAliyunCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_DCDN:
case DEPLOYMENT_PROVIDERS.ALIYUN_DCDN:
return <DeployNodeConfigFormAliyunDCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_ESA:
case DEPLOYMENT_PROVIDERS.ALIYUN_ESA:
return <DeployNodeConfigFormAliyunESAConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_FC:
case DEPLOYMENT_PROVIDERS.ALIYUN_FC:
return <DeployNodeConfigFormAliyunFCConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_LIVE:
case DEPLOYMENT_PROVIDERS.ALIYUN_LIVE:
return <DeployNodeConfigFormAliyunLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_NLB:
case DEPLOYMENT_PROVIDERS.ALIYUN_NLB:
return <DeployNodeConfigFormAliyunNLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_OSS:
case DEPLOYMENT_PROVIDERS.ALIYUN_OSS:
return <DeployNodeConfigFormAliyunOSSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_VOD:
case DEPLOYMENT_PROVIDERS.ALIYUN_VOD:
return <DeployNodeConfigFormAliyunVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_WAF:
case DEPLOYMENT_PROVIDERS.ALIYUN_WAF:
return <DeployNodeConfigFormAliyunWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AWS_ACM:
case DEPLOYMENT_PROVIDERS.AWS_ACM:
return <DeployNodeConfigFormAWSACMConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AWS_CLOUDFRONT:
case DEPLOYMENT_PROVIDERS.AWS_CLOUDFRONT:
return <DeployNodeConfigFormAWSCloudFrontConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AZURE_KEYVAULT:
case DEPLOYMENT_PROVIDERS.AZURE_KEYVAULT:
return <DeployNodeConfigFormAzureKeyVaultConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_APPBLB:
case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_APPBLB:
return <DeployNodeConfigFormBaiduCloudAppBLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_BLB:
case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_BLB:
return <DeployNodeConfigFormBaiduCloudBLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_CDN:
case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_CDN:
return <DeployNodeConfigFormBaiduCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAISHAN_CDN:
case DEPLOYMENT_PROVIDERS.BAISHAN_CDN:
return <DeployNodeConfigFormBaishanCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAOTAPANEL_CONSOLE:
case DEPLOYMENT_PROVIDERS.BAOTAPANEL_CONSOLE:
return <DeployNodeConfigFormBaotaPanelConsoleConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAOTAPANEL_SITE:
case DEPLOYMENT_PROVIDERS.BAOTAPANEL_SITE:
return <DeployNodeConfigFormBaotaPanelSiteConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BUNNY_CDN:
case DEPLOYMENT_PROVIDERS.BUNNY_CDN:
return <DeployNodeConfigFormBunnyCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BYTEPLUS_CDN:
case DEPLOYMENT_PROVIDERS.BYTEPLUS_CDN:
return <DeployNodeConfigFormBytePlusCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.CDNFLY:
case DEPLOYMENT_PROVIDERS.CDNFLY:
return <DeployNodeConfigFormCdnflyConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.DOGECLOUD_CDN:
case DEPLOYMENT_PROVIDERS.DOGECLOUD_CDN:
return <DeployNodeConfigFormDogeCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.EDGIO_APPLICATIONS:
case DEPLOYMENT_PROVIDERS.EDGIO_APPLICATIONS:
return <DeployNodeConfigFormEdgioApplicationsConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.GCORE_CDN:
case DEPLOYMENT_PROVIDERS.GCORE_CDN:
return <DeployNodeConfigFormGcoreCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_CDN:
case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_CDN:
return <DeployNodeConfigFormHuaweiCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_ELB:
case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_ELB:
return <DeployNodeConfigFormHuaweiCloudELBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_WAF:
case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_WAF:
return <DeployNodeConfigFormHuaweiCloudWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_ALB:
case DEPLOYMENT_PROVIDERS.JDCLOUD_ALB:
return <DeployNodeConfigFormJDCloudALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_CDN:
case DEPLOYMENT_PROVIDERS.JDCLOUD_CDN:
return <DeployNodeConfigFormJDCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_LIVE:
case DEPLOYMENT_PROVIDERS.JDCLOUD_LIVE:
return <DeployNodeConfigFormJDCloudLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_VOD:
case DEPLOYMENT_PROVIDERS.JDCLOUD_VOD:
return <DeployNodeConfigFormJDCloudVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.KUBERNETES_SECRET:
case DEPLOYMENT_PROVIDERS.KUBERNETES_SECRET:
return <DeployNodeConfigFormKubernetesSecretConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.LOCAL:
case DEPLOYMENT_PROVIDERS.LOCAL:
return <DeployNodeConfigFormLocalConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_CDN:
case DEPLOYMENT_PROVIDERS.QINIU_CDN:
return <DeployNodeConfigFormQiniuCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_KODO:
case DEPLOYMENT_PROVIDERS.QINIU_KODO:
return <DeployNodeConfigFormQiniuKodoConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_PILI:
case DEPLOYMENT_PROVIDERS.QINIU_PILI:
return <DeployNodeConfigFormQiniuPiliConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.RAINYUN_RCDN:
case DEPLOYMENT_PROVIDERS.RAINYUN_RCDN:
return <DeployNodeConfigFormRainYunRCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.SAFELINE:
case DEPLOYMENT_PROVIDERS.SAFELINE:
return <DeployNodeConfigFormSafeLineConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.SSH:
case DEPLOYMENT_PROVIDERS.SSH:
return <DeployNodeConfigFormSSHConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CDN:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CDN:
return <DeployNodeConfigFormTencentCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CLB:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CLB:
return <DeployNodeConfigFormTencentCloudCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_COS:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_COS:
return <DeployNodeConfigFormTencentCloudCOSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CSS:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CSS:
return <DeployNodeConfigFormTencentCloudCSSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_ECDN:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_ECDN:
return <DeployNodeConfigFormTencentCloudECDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_EO:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_EO:
return <DeployNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_SCF:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SCF:
return <DeployNodeConfigFormTencentCloudSCFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY:
return <DeployNodeConfigFormTencentCloudSSLDeployConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_VOD:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_VOD:
return <DeployNodeConfigFormTencentCloudVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_WAF:
case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_WAF:
return <DeployNodeConfigFormTencentCloudWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UCLOUD_UCDN:
case DEPLOYMENT_PROVIDERS.UCLOUD_UCDN:
return <DeployNodeConfigFormUCloudUCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UCLOUD_US3:
case DEPLOYMENT_PROVIDERS.UCLOUD_US3:
return <DeployNodeConfigFormUCloudUS3Config {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UPYUN_CDN:
case DEPLOYMENT_PROVIDERS.UPYUN_CDN:
return <DeployNodeConfigFormUpyunCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UPYUN_FILE:
case DEPLOYMENT_PROVIDERS.UPYUN_FILE:
return <DeployNodeConfigFormUpyunFileConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_ALB:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_ALB:
return <DeployNodeConfigFormVolcEngineALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CDN:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_CDN:
return <DeployNodeConfigFormVolcEngineCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CERTCENTER:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_CERTCENTER:
return <DeployNodeConfigFormVolcEngineCertCenterConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CLB:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_CLB:
return <DeployNodeConfigFormVolcEngineCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_DCDN:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_DCDN:
return <DeployNodeConfigFormVolcEngineDCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_IMAGEX:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_IMAGEX:
return <DeployNodeConfigFormVolcEngineImageXConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_LIVE:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_LIVE:
return <DeployNodeConfigFormVolcEngineLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_TOS:
case DEPLOYMENT_PROVIDERS.VOLCENGINE_TOS:
return <DeployNodeConfigFormVolcEngineTOSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.WANGSU_CDNPRO:
case DEPLOYMENT_PROVIDERS.WANGSU_CDNPRO:
return <DeployNodeConfigFormWangsuCDNProConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.WEBHOOK:
case DEPLOYMENT_PROVIDERS.WEBHOOK:
return <DeployNodeConfigFormWebhookConfig {...nestedFormProps} />;
}
}, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]);
@@ -339,7 +339,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
}
formInst.setFieldsValue(newValues);
if (deployProvidersMap.get(fieldProvider)?.provider !== deployProvidersMap.get(value!)?.provider) {
if (deploymentProvidersMap.get(fieldProvider)?.provider !== deploymentProvidersMap.get(value!)?.provider) {
formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true));
}
@@ -384,10 +384,10 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
<Form className={className} style={style} {...formProps} disabled={disabled} layout="vertical" scrollToFirstError onValuesChange={handleFormChange}>
<Show
when={!!fieldProvider}
fallback={<DeployProviderPicker autoFocus placeholder={t("workflow_node.deploy.search.provider.placeholder")} onSelect={handleProviderPick} />}
fallback={<DeploymentProviderPicker autoFocus placeholder={t("workflow_node.deploy.search.provider.placeholder")} onSelect={handleProviderPick} />}
>
<Form.Item name="provider" label={t("workflow_node.deploy.form.provider.label")} rules={[formRule]}>
<DeployProviderSelect
<DeploymentProviderSelect
allowClear
disabled={!!initialValues?.provider}
placeholder={t("workflow_node.deploy.form.provider.placeholder")}
@@ -410,7 +410,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
</div>
<div className="text-right">
<AccessEditModal
data={{ provider: deployProvidersMap.get(fieldProvider!)?.provider }}
data={{ provider: deploymentProvidersMap.get(fieldProvider!)?.provider }}
range="both-dns-hosting"
scene="add"
trigger={
@@ -433,7 +433,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
<AccessSelect
filter={(record) => {
if (fieldProvider) {
return deployProvidersMap.get(fieldProvider)?.provider === record.provider;
return deploymentProvidersMap.get(fieldProvider)?.provider === record.provider;
}
const provider = accessProvidersMap.get(record.provider);
@@ -444,7 +444,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
</Form.Item>
</Form.Item>
<Show when={fieldProvider === DEPLOY_PROVIDERS.LOCAL}>
<Show when={fieldProvider === DEPLOYMENT_PROVIDERS.LOCAL}>
<Form.Item>
<Alert
type="info"

View File

@@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next";
import { Avatar, Flex, Typography } from "antd";
import { produce } from "immer";
import { notifyProvidersMap } from "@/domain/provider";
import { notificationProvidersMap } from "@/domain/provider";
import { notifyChannelsMap } from "@/domain/settings";
import { type WorkflowNodeConfigForNotify, WorkflowNodeType } from "@/domain/workflow";
import { useZustandShallowSelector } from "@/hooks";
@@ -40,7 +40,7 @@ const NotifyNode = ({ node, disabled }: NotifyNodeProps) => {
const config = (node.config as WorkflowNodeConfigForNotify) ?? {};
const channel = notifyChannelsMap.get(config.channel as string);
const provider = notifyProvidersMap.get(config.provider);
const provider = notificationProvidersMap.get(config.provider);
return (
<Flex className="size-full overflow-hidden" align="center" gap={8}>
<Avatar src={provider?.icon} size="small" />

View File

@@ -2,14 +2,14 @@ import { forwardRef, memo, useEffect, useImperativeHandle, useState } from "reac
import { useTranslation } from "react-i18next";
import { Link } from "react-router";
import { PlusOutlined as PlusOutlinedIcon, RightOutlined as RightOutlinedIcon } from "@ant-design/icons";
import { Alert, Button, Form, type FormInstance, Input, Select } from "antd";
import { Button, Form, type FormInstance, Input, Select } from "antd";
import { createSchemaFieldRule } from "antd-zod";
import { z } from "zod";
import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect";
import NotifyProviderSelect from "@/components/provider/NotifyProviderSelect";
import { ACCESS_USAGES, accessProvidersMap, notifyProvidersMap } from "@/domain/provider";
import NotificationProviderSelect from "@/components/provider/NotificationProviderSelect";
import { ACCESS_USAGES, accessProvidersMap, notificationProvidersMap } from "@/domain/provider";
import { notifyChannelsMap } from "@/domain/settings";
import { type WorkflowNodeConfigForNotify } from "@/domain/workflow";
import { useAntdForm, useZustandShallowSelector } from "@/hooks";
@@ -81,7 +81,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
// 如果对应多个,则显示。
if (fieldProviderAccessId) {
const access = accesses.find((e) => e.id === fieldProviderAccessId);
const providers = Array.from(notifyProvidersMap.values()).filter((e) => e.provider === access?.provider);
const providers = Array.from(notificationProvidersMap.values()).filter((e) => e.provider === access?.provider);
setShowProvider(providers.length > 1);
} else {
setShowProvider(false);
@@ -96,7 +96,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId);
onValuesChange?.(formInst.getFieldsValue(true));
} else {
if (notifyProvidersMap.get(fieldProvider)?.provider !== notifyProvidersMap.get(value)?.provider) {
if (notificationProvidersMap.get(fieldProvider)?.provider !== notificationProvidersMap.get(value)?.provider) {
formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true));
}
@@ -108,7 +108,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
// 切换授权信息时联动消息通知提供商
const access = accesses.find((access) => access.id === value);
const provider = Array.from(notifyProvidersMap.values()).find((provider) => provider.provider === access?.provider);
const provider = Array.from(notificationProvidersMap.values()).find((provider) => provider.provider === access?.provider);
if (fieldProvider !== provider?.type) {
formInst.setFieldValue("provider", provider?.type);
onValuesChange?.(formInst.getFieldsValue(true));
@@ -172,7 +172,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
</Form.Item>
<Form.Item name="provider" label={t("workflow_node.notify.form.provider.label")} hidden={!showProvider} rules={[formRule]}>
<NotifyProviderSelect
<NotificationProviderSelect
disabled={!showProvider}
filter={(record) => {
if (fieldProviderAccessId) {