diff --git a/web/app/components/workflow/nodes/human-input/components/delivery-method/method-item.tsx b/web/app/components/workflow/nodes/human-input/components/delivery-method/method-item.tsx index 1e7656d986..8935176a55 100644 --- a/web/app/components/workflow/nodes/human-input/components/delivery-method/method-item.tsx +++ b/web/app/components/workflow/nodes/human-input/components/delivery-method/method-item.tsx @@ -70,15 +70,30 @@ const DeliveryMethodItem: FC = ({ }) } + const isEmailConfigComplete = useMemo(() => { + if (method.type !== DeliveryMethodType.Email || !method.config) + return false + + const config = method.config as EmailConfig + const hasSubject = !!config.subject + const hasBody = !!config.body + const hasRecipients = config.recipients?.whole_workspace || (config.recipients?.items?.length > 0) + + return hasSubject && hasBody && hasRecipients + }, [method.type, method.config]) + const emailSenderTooltipContent = useMemo(() => { if (method.type !== DeliveryMethodType.Email) { return '' } + if (!isEmailConfigComplete) { + return t(`${i18nPrefix}.deliveryMethod.emailSender.configIncomplete`, { ns: 'workflow' }) + } if (method.config?.debug_mode) { return t(`${i18nPrefix}.deliveryMethod.emailSender.testSendTipInDebugMode`, { ns: 'workflow', email }) } return t(`${i18nPrefix}.deliveryMethod.emailSender.testSendTip`, { ns: 'workflow' }) - }, [method.type, method.config?.debug_mode, t, email]) + }, [method.type, method.config?.debug_mode, isEmailConfigComplete, t, email]) const jumpToEmailConfigModal = useCallback(() => { setShowTestEmailModal(false) @@ -119,7 +134,13 @@ const DeliveryMethodItem: FC = ({ asChild={false} needsDelay={false} > - setShowTestEmailModal(true)}> + { + if (isEmailConfigComplete) + setShowTestEmailModal(true) + }} + > diff --git a/web/i18n/en-US/workflow.json b/web/i18n/en-US/workflow.json index 4d9f5adbac..2834e70267 100644 --- a/web/i18n/en-US/workflow.json +++ b/web/i18n/en-US/workflow.json @@ -525,6 +525,7 @@ "nodes.humanInput.deliveryMethod.emailConfigure.subject": "Subject", "nodes.humanInput.deliveryMethod.emailConfigure.subjectPlaceholder": "Enter email subject", "nodes.humanInput.deliveryMethod.emailConfigure.title": "Email Configuration", + "nodes.humanInput.deliveryMethod.emailSender.configIncomplete": "Please complete email configuration first (subject, body, and recipients)", "nodes.humanInput.deliveryMethod.emailSender.debugDone": "A test email has been sent to {{email}}. Please check your inbox.", "nodes.humanInput.deliveryMethod.emailSender.debugModeTip": "Debug mode is enabled.", "nodes.humanInput.deliveryMethod.emailSender.debugModeTip2": "Email will be sent to {{email}}.", diff --git a/web/i18n/zh-Hans/workflow.json b/web/i18n/zh-Hans/workflow.json index acda7db2fc..051886253a 100644 --- a/web/i18n/zh-Hans/workflow.json +++ b/web/i18n/zh-Hans/workflow.json @@ -525,6 +525,7 @@ "nodes.humanInput.deliveryMethod.emailConfigure.subject": "邮件主题", "nodes.humanInput.deliveryMethod.emailConfigure.subjectPlaceholder": "输入邮件主题", "nodes.humanInput.deliveryMethod.emailConfigure.title": "电子邮件配置", + "nodes.humanInput.deliveryMethod.emailSender.configIncomplete": "请先完成邮件配置(主题、正文和收件人)", "nodes.humanInput.deliveryMethod.emailSender.debugDone": "测试邮件已发送到 {{email}}。请检查您的收件箱。", "nodes.humanInput.deliveryMethod.emailSender.debugModeTip": "调试模式已启用。", "nodes.humanInput.deliveryMethod.emailSender.debugModeTip2": "邮件将发送到 {{email}}。",