mirror of
https://github.com/usual2970/certimate.git
synced 2025-07-23 19:37:58 +00:00
refactor: clean code
This commit is contained in:
@@ -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);
|
||||
|
@@ -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" />
|
||||
|
@@ -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"
|
||||
|
@@ -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" />
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user