From a6d2392c6cabbb6c0464dd12503e8cadf9bd7191 Mon Sep 17 00:00:00 2001 From: JzoNg Date: Fri, 1 Aug 2025 15:36:02 +0800 Subject: [PATCH] method selector --- .../components/delivery-method/index.tsx | 11 ++++++--- .../delivery-method/method-selector.tsx | 24 ++++++++++++------- .../workflow/nodes/human-input/panel.tsx | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/web/app/components/workflow/nodes/human-input/components/delivery-method/index.tsx b/web/app/components/workflow/nodes/human-input/components/delivery-method/index.tsx index f56ad7ed3d..6013268c67 100644 --- a/web/app/components/workflow/nodes/human-input/components/delivery-method/index.tsx +++ b/web/app/components/workflow/nodes/human-input/components/delivery-method/index.tsx @@ -2,10 +2,15 @@ import React from 'react' import { useTranslation } from 'react-i18next' import Tooltip from '@/app/components/base/tooltip' import MethodSelector from './method-selector' +import type { DeliveryMethod } from '../../types' const i18nPrefix = 'workflow.nodes.humanInput' -const DeliveryMethod: React.FC = () => { +type Props = { + value: DeliveryMethod[] +} + +const DeliveryMethodForm: React.FC = ({ value }) => { const { t } = useTranslation() return ( @@ -19,7 +24,7 @@ const DeliveryMethod: React.FC = () => {
{ /* Add edit action logic here */ }} + data={value} />
@@ -28,4 +33,4 @@ const DeliveryMethod: React.FC = () => { ) } -export default DeliveryMethod +export default DeliveryMethodForm diff --git a/web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx b/web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx index d9d471fb4a..c3ef38fd21 100644 --- a/web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx +++ b/web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx @@ -13,16 +13,18 @@ import { PortalToFollowElemContent, PortalToFollowElemTrigger, } from '@/app/components/base/portal-to-follow-elem' +import type { DeliveryMethod } from '../../types' +import { DeliveryMethodType } from '../../types' import cn from '@/utils/classnames' const i18nPrefix = 'workflow.nodes.humanInput' type Props = { - onEdit: () => void + data: DeliveryMethod[] } const MethodSelector: FC = ({ - onEdit, + data, }) => { const { t } = useTranslation() const [open, doSetOpen] = useState(false) @@ -56,23 +58,29 @@ const MethodSelector: FC = ({
-
-
+
method.type === DeliveryMethodType.WebApp) && 'cursor-not-allowed bg-transparent hover:bg-transparent')}> +
method.type === DeliveryMethodType.WebApp) && 'opacity-50')}>
-
+
method.type === DeliveryMethodType.WebApp) && 'opacity-50')}>
{t(`${i18nPrefix}.deliveryMethod.types.webapp.title`)}
{t(`${i18nPrefix}.deliveryMethod.types.webapp.description`)}
+ {data.some(method => method.type === DeliveryMethodType.WebApp) && ( +
{t(`${i18nPrefix}.deliveryMethod.added`)}
+ )}
-
-
+
method.type === DeliveryMethodType.Email) && 'cursor-not-allowed bg-transparent hover:bg-transparent')}> +
method.type === DeliveryMethodType.Email) && 'opacity-50')}>
-
+
method.type === DeliveryMethodType.Email) && 'opacity-50')}>
{t(`${i18nPrefix}.deliveryMethod.types.email.title`)}
{t(`${i18nPrefix}.deliveryMethod.types.email.description`)}
+ {data.some(method => method.type === DeliveryMethodType.Email) && ( +
{t(`${i18nPrefix}.deliveryMethod.added`)}
+ )}
diff --git a/web/app/components/workflow/nodes/human-input/panel.tsx b/web/app/components/workflow/nodes/human-input/panel.tsx index 6829a40e99..0b6dac3e07 100644 --- a/web/app/components/workflow/nodes/human-input/panel.tsx +++ b/web/app/components/workflow/nodes/human-input/panel.tsx @@ -33,7 +33,7 @@ const Panel: FC> = ({ return (
{/* delivery methods */} - +