From f8a249de03618fd263540b38f7e70a6fa9df9b37 Mon Sep 17 00:00:00 2001 From: JzoNg Date: Thu, 7 Aug 2025 20:03:36 +0800 Subject: [PATCH] email config validation --- .../delivery-method/email-configure-modal.tsx | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/web/app/components/workflow/nodes/human-input/components/delivery-method/email-configure-modal.tsx b/web/app/components/workflow/nodes/human-input/components/delivery-method/email-configure-modal.tsx index 35e85755c2..b8f71501fc 100644 --- a/web/app/components/workflow/nodes/human-input/components/delivery-method/email-configure-modal.tsx +++ b/web/app/components/workflow/nodes/human-input/components/delivery-method/email-configure-modal.tsx @@ -6,6 +6,7 @@ import Input from '@/app/components/base/input' import Button from '@/app/components/base/button' import Recipient from './recipient' import MailBodyInput from './mail-body-input' +import Toast from '@/app/components/base/toast' import type { EmailConfig } from '../../types' import type { Node, @@ -38,7 +39,33 @@ const EmailConfigureModal = ({ const [subject, setSubject] = useState(config?.subject || '') const [body, setBody] = useState(config?.body || '') + const checkValidConfig = () => { + if (!subject.trim()) { + Toast.notify({ + type: 'error', + message: 'subject is required', + }) + return false + } + if (!body.trim()) { + Toast.notify({ + type: 'error', + message: 'body is required', + }) + return false + } + if (!recipients || (recipients.items.length === 0 && !recipients.whole_workspace)) { + Toast.notify({ + type: 'error', + message: 'recipients is required', + }) + return false + } + return true + } + const handleConfirm = useCallback(() => { + if (!checkValidConfig()) return onConfirm({ recipients, subject,