feat(ui): remove workflow nodes help tooltip

This commit is contained in:
Fu Diwei
2025-10-15 13:36:20 +08:00
parent df015b1e58
commit 5e5d442f26
14 changed files with 3 additions and 42 deletions
@@ -16,7 +16,6 @@ export const BizApplyNodeRegistry: NodeRegistry = {
kind: NodeKindType.Business,
meta: {
helpText: getI18n().t("workflow_node.apply.help"),
labelText: getI18n().t("workflow_node.apply.label"),
icon: IconContract,
@@ -17,7 +17,6 @@ export const BizDeployNodeRegistry: NodeRegistry = {
kind: NodeKindType.Business,
meta: {
helpText: getI18n().t("workflow_node.deploy.help"),
labelText: getI18n().t("workflow_node.deploy.label"),
icon: IconPackage,
@@ -14,7 +14,6 @@ export const BizMonitorNodeRegistry: NodeRegistry = {
kind: NodeKindType.Business,
meta: {
helpText: getI18n().t("workflow_node.monitor.help"),
labelText: getI18n().t("workflow_node.monitor.label"),
icon: IconDeviceDesktopSearch,
@@ -16,7 +16,6 @@ export const BizNotifyNodeRegistry: NodeRegistry = {
kind: NodeKindType.Business,
meta: {
helpText: getI18n().t("workflow_node.notify.help"),
labelText: getI18n().t("workflow_node.notify.label"),
icon: IconSend,
@@ -14,7 +14,6 @@ export const BizUploadNodeRegistry: NodeRegistry = {
kind: NodeKindType.Business,
meta: {
helpText: getI18n().t("workflow_node.upload.help"),
labelText: getI18n().t("workflow_node.upload.label"),
icon: IconCloudUpload,
@@ -18,7 +18,6 @@ export const ConditionNodeRegistry: NodeRegistry = {
extend: FlowNodeSplitType.DYNAMIC_SPLIT,
meta: {
helpText: getI18n().t("workflow_node.condition.help"),
labelText: getI18n().t("workflow_node.condition.label"),
icon: IconSitemap,
@@ -14,7 +14,6 @@ export const DelayNodeRegistry: NodeRegistry = {
kind: NodeKindType.Basis,
meta: {
helpText: getI18n().t("workflow_node.delay.help"),
labelText: getI18n().t("workflow_node.delay.label"),
icon: IconHourglassHigh,
@@ -13,7 +13,6 @@ export const EndNodeRegistry: NodeRegistry = {
kind: NodeKindType.Basis,
meta: {
helpText: getI18n().t("workflow_node.end.help"),
labelText: getI18n().t("workflow_node.end.label"),
icon: IconLogout,
@@ -14,7 +14,6 @@ export const StartNodeRegistry: NodeRegistry = {
kind: NodeKindType.Basis,
meta: {
helpText: getI18n().t("workflow_node.start.help"),
labelText: getI18n().t("workflow_node.start.label"),
icon: IconRocket,
@@ -13,7 +13,6 @@ export const TryCatchNodeRegistry: NodeRegistry = {
kind: NodeKindType.Logic,
meta: {
helpText: getI18n().t("workflow_node.try_catch.help"),
labelText: getI18n().t("workflow_node.try_catch.label"),
icon: IconArrowsSplit,
@@ -10,7 +10,7 @@ import {
useWatchFormValueIn,
} from "@flowgram.ai/fixed-layout-editor";
import { IconCopy, IconDotsVertical, IconGripVertical, IconLabel, IconX } from "@tabler/icons-react";
import { Button, type ButtonProps, Card, Dropdown, Input, type InputRef, Popover, Tooltip, theme } from "antd";
import { Button, type ButtonProps, Card, Dropdown, Input, type InputRef, Popover, theme } from "antd";
import { mergeCls } from "@/utils/css";
@@ -337,13 +337,7 @@ export const BaseNode = ({ className, style, children, description }: BaseNodePr
children
) : (
<div className={mergeCls("flex items-center gap-1 overflow-hidden p-3", inputVisible ? "invisible" : "visible")}>
{nodeRegistry.meta?.helpText == null ? (
renderNodeIcon()
) : (
<Tooltip title={<span dangerouslySetInnerHTML={{ __html: nodeRegistry.meta.helpText }}></span>} mouseEnterDelay={1}>
<div className="cursor-help">{renderNodeIcon()}</div>
</Tooltip>
)}
{renderNodeIcon()}
<div className="flex-1 overflow-hidden">
<div className="truncate">
<Field<string> name="name">{({ field: { value } }) => <>{value || "\u00A0"}</>}</Field>
@@ -62,10 +62,6 @@ export interface NodeMeta extends FlowNodeMeta {
* 自定义样式。
*/
style?: React.CSSProperties;
/**
* 帮助文本。
*/
helpText?: React.ReactNode;
/**
* 标题文本。
*/
+1 -10
View File
@@ -4,7 +4,6 @@
"workflow_node.kind.logic": "Logic",
"workflow_node.start.label": "Start",
"workflow_node.start.help": "Define the trigger for workflow initiation. A workflow can only have one start node.",
"workflow_node.start.default_name": "Start",
"workflow_node.start.form_anchor.parameters.tab": "Parameters",
"workflow_node.start.form.trigger.label": "Trigger",
@@ -17,8 +16,8 @@
"workflow_node.start.form.trigger_cron.tooltip": "Exactly 5 space separated segments, in standard <em>crontab</em> rules.",
"workflow_node.start.form.trigger_cron.help": "Expected execution time for the last 5 times (the actual time zone is based on the server):",
"workflow_node.start.form.trigger_cron.guide": "If you have multiple workflows, it is recommended to set them to run at different times of the day instead of always running at a specific time. And please don't always set it to midnight every day to avoid spikes in traffic. <br><br>Reference links:<br>1. <a href=\"https://letsencrypt.org/docs/rate-limits/\" target=\"_blank\">Let’s Encrypt rate limits</a><br>2. <a href=\"https://letsencrypt.org/docs/faq/#why-should-my-let-s-encrypt-acme-client-run-at-a-random-time\" target=\"_blank\">Why should my Let’s Encrypt (ACME) client run at a random time?</a>",
"workflow_node.apply.label": "Request certificate",
"workflow_node.apply.help": "Apply for SSL certificate issuance from the certificate authority.",
"workflow_node.apply.default_name": "Application",
"workflow_node.apply.form_anchor.parameters.tab": "Parameters",
"workflow_node.apply.form_anchor.challenge.tab": "Challenge",
@@ -128,7 +127,6 @@
"workflow_node.apply.form.skip_before_expiry_days.tooltip": "Be careful not to exceed the validity period limit of the issued certificate, otherwise the certificate may never be renewed.",
"workflow_node.upload.label": "Upload certificate",
"workflow_node.upload.help": "Upload the user's existing SSL certificate.",
"workflow_node.upload.default_name": "Uploading",
"workflow_node.upload.form_anchor.parameters.tab": "Parameters",
"workflow_node.upload.form.guide": "The file content will be read again every time this node executes.",
@@ -153,7 +151,6 @@
"workflow_node.upload.form.private_key_url.placeholder": "Please enter the URL for downloading private key file",
"workflow_node.monitor.label": "Monitor certificate",
"workflow_node.monitor.help": "Obtain the SSL certificate of the website through HTTPS protocol.",
"workflow_node.monitor.default_name": "Monitoring",
"workflow_node.monitor.form_anchor.parameters.tab": "Parameters",
"workflow_node.monitor.form.guide": "Certimate will send a HEAD request to the target address to obtain the certificate. Please ensure that the address is accessible through HTTPS protocol.",
@@ -168,7 +165,6 @@
"workflow_node.monitor.form.request_path.placeholder": "Please enter request path",
"workflow_node.deploy.label": "Deploy certificate",
"workflow_node.deploy.help": "Invoke the APIs of the service provider to deploy the SSL certificate.",
"workflow_node.deploy.default_name": "Deployment",
"workflow_node.deploy.form_anchor.parameters.tab": "Parameters",
"workflow_node.deploy.form_anchor.deployment.tab": "Deployment",
@@ -1051,7 +1047,6 @@
"workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "not skip",
"workflow_node.notify.label": "Send notification",
"workflow_node.notify.help": "Invoke the APIs of the service provider to push message notifications.",
"workflow_node.notify.default_name": "Notification",
"workflow_node.notify.form_anchor.parameters.tab": "Parameters",
"workflow_node.notify.form_anchor.channel.tab": "Channel",
@@ -1099,7 +1094,6 @@
"workflow_node.notify.form.skip_on_all_prev_skipped.switch.off": "not skip",
"workflow_node.delay.label": "Delay",
"workflow_node.delay.help": "Pause the execution, and wait for a certain amount of time.",
"workflow_node.delay.default_name": "Delay",
"workflow_node.delay.form_anchor.parameters.tab": "Parameters",
"workflow_node.delay.form.wait.label": "Waiting time",
@@ -1107,7 +1101,6 @@
"workflow_node.delay.form.wait.unit": "seconds",
"workflow_node.condition.label": "Parallel/Conditional branch",
"workflow_node.condition.help": "When the specified conditions are met, enter the corresponding branch. The failure of a node in a certain branch does not affect the continuation of parallel branch execution.",
"workflow_node.condition.default_name": "Parallel",
"workflow_node.condition.default_name.template_certtest_on_expiring_soon": "If the certificate will be expiring soon ...",
"workflow_node.condition.default_name.template_certtest_on_expired": "If the certificate has expired ...",
@@ -1142,13 +1135,11 @@
"workflow_node.branch_block.form.expression.add_condition.button": "Add condition",
"workflow_node.try_catch.label": "Execution result branch",
"workflow_node.try_catch.help": "Attempt to execute subsequent nodes, and when any node fails to execute, interrupt and enter the execution failure branch.",
"workflow_node.try_catch.default_name": "Try to ...",
"workflow_node.catch_block.label": "Execution failure branch",
"workflow_node.catch_block.default_name": "On failed ...",
"workflow_node.end.label": "End",
"workflow_node.end.help": "Suspend the workflow and exit. Usually the last node of a workflow.",
"workflow_node.end.default_name": "End"
}
@@ -4,7 +4,6 @@
"workflow_node.kind.logic": "逻辑",
"workflow_node.start.label": "开始",
"workflow_node.start.help": "定义工作流启动的触发条件。一个工作流只能有一个开始节点。",
"workflow_node.start.default_name": "开始",
"workflow_node.start.form_anchor.parameters.tab": "参数设置",
"workflow_node.start.form.trigger.label": "触发方式",
@@ -19,7 +18,6 @@
"workflow_node.start.form.trigger_cron.guide": "如果你有多个工作流,建议将它们设置为在一天中的多个时间段运行,而非总是在相同的特定时间。也不要总是设置为每日零时,以免遭遇证书颁发机构的流量高峰。<br><br>参考链接:<br>1. <a href=\"https://letsencrypt.org/zh-cn/docs/rate-limits/\" target=\"_blank\">Let’s Encrypt 速率限制</a><br>2. <a href=\"https://letsencrypt.org/zh-cn/docs/faq/#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84-let-s-encrypt-acme-%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%BA%94%E5%BD%93%E9%9A%8F%E6%9C%BA\" target=\"_blank\">为什么我的 Let’s Encrypt (ACME) 客户端启动时间应当随机?</a>",
"workflow_node.apply.label": "申请签发证书",
"workflow_node.apply.help": "从证书颁发机构申请签发 SSL 证书。",
"workflow_node.apply.default_name": "申请",
"workflow_node.apply.form_anchor.parameters.tab": "参数设置",
"workflow_node.apply.form_anchor.challenge.tab": "验证质询",
@@ -128,7 +126,6 @@
"workflow_node.apply.form.skip_before_expiry_days.tooltip": "注意不要超过颁发的证书最大有效期,否则证书可能永远不会续期。",
"workflow_node.upload.label": "上传自有证书",
"workflow_node.upload.help": "上传用户已有的本地 SSL 证书。",
"workflow_node.upload.default_name": "上传",
"workflow_node.upload.form_anchor.parameters.tab": "参数设置",
"workflow_node.upload.form.guide": "每次执行此节点时,都将重新读取文件内容。",
@@ -153,7 +150,6 @@
"workflow_node.upload.form.private_key_url.placeholder": "请输入私钥文件下载 URL",
"workflow_node.monitor.label": "监控网站证书",
"workflow_node.monitor.help": "通过 HTTPS 协议获取指定网站的 SSL 证书。",
"workflow_node.monitor.default_name": "监控",
"workflow_node.monitor.form_anchor.parameters.tab": "参数设置",
"workflow_node.monitor.form.guide": "Certimate 将向目标地址发送一个 HEAD 请求来获取相应的域名证书,请确保该地址可通过 HTTPS 协议访问。",
@@ -168,7 +164,6 @@
"workflow_node.monitor.form.request_path.placeholder": "请输入请求路径",
"workflow_node.deploy.label": "部署证书到 ...",
"workflow_node.deploy.help": "调用服务提供商相关 API,将 SSL 证书部署到指定的目标。",
"workflow_node.deploy.default_name": "部署",
"workflow_node.deploy.form_anchor.parameters.tab": "参数设置",
"workflow_node.deploy.form_anchor.deployment.tab": "部署设置",
@@ -1050,7 +1045,6 @@
"workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "不跳过",
"workflow_node.notify.label": "推送通知",
"workflow_node.notify.help": "调用服务提供商相关 API,将消息通知推送到指定的目标。",
"workflow_node.notify.default_name": "通知",
"workflow_node.notify.form_anchor.parameters.tab": "参数设置",
"workflow_node.notify.form_anchor.channel.tab": "渠道设置",
@@ -1097,7 +1091,6 @@
"workflow_node.notify.form.skip_on_all_prev_skipped.switch.off": "不跳过",
"workflow_node.delay.label": "延迟等待",
"workflow_node.delay.help": "暂停执行工作流并等待一段时间。这在某些需要降低调用执行频率的场景很有用。",
"workflow_node.delay.default_name": "延迟",
"workflow_node.delay.form_anchor.parameters.tab": "参数设置",
"workflow_node.delay.form.wait.label": "等待时间",
@@ -1105,7 +1098,6 @@
"workflow_node.delay.form.wait.unit": "秒",
"workflow_node.condition.label": "并行/条件分支",
"workflow_node.condition.help": "当满足指定的条件时,进入相应分支。某一分支中的节点执行失败不影响平行分支继续执行。",
"workflow_node.condition.default_name": "并行",
"workflow_node.condition.default_name.template_certtest_on_expiring_soon": "若网站证书即将过期…",
"workflow_node.condition.default_name.template_certtest_on_expired": "若网站证书已过期…",
@@ -1140,13 +1132,11 @@
"workflow_node.branch_block.form.expression.add_condition.button": "添加条件",
"workflow_node.try_catch.label": "执行结果分支",
"workflow_node.try_catch.help": "尝试执行后续节点,当任一节点执行失败后,中断并进入执行失败分支。",
"workflow_node.try_catch.default_name": "尝试执行…",
"workflow_node.catch_block.label": "执行失败分支",
"workflow_node.catch_block.default_name": "若执行失败…",
"workflow_node.end.label": "结束",
"workflow_node.end.help": "中止工作流运行并退出。通常是一个工作流的最后一个节点。",
"workflow_node.end.default_name": "结束"
}