From 4084ade86c9d9e8b2e00313befc77668a766b942 Mon Sep 17 00:00:00 2001 From: cathy <38449456+CathyL0@users.noreply.github.com> Date: Sun, 24 Aug 2025 00:21:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(trigger-webhook):=20remove=20redundant?= =?UTF-8?q?=20WebhookParam=20type=20and=20sim=E2=80=A6=20(#24390)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/parameter-table.tsx | 30 ++++++++++++------- .../workflow/nodes/trigger-webhook/panel.tsx | 10 +++---- .../workflow/nodes/trigger-webhook/types.ts | 7 ----- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/web/app/components/workflow/nodes/trigger-webhook/components/parameter-table.tsx b/web/app/components/workflow/nodes/trigger-webhook/components/parameter-table.tsx index 5ad49662d6..1cad1a2d78 100644 --- a/web/app/components/workflow/nodes/trigger-webhook/components/parameter-table.tsx +++ b/web/app/components/workflow/nodes/trigger-webhook/components/parameter-table.tsx @@ -4,12 +4,25 @@ import React from 'react' import { useTranslation } from 'react-i18next' import GenericTable from './generic-table' import type { ColumnConfig, GenericTableRow } from './generic-table' -import type { WebhookParam } from '../types' +import type { ParameterType, WebhookParameter } from '../types' + +const normalizeParamType = (type: string): ParameterType => { + switch (type) { + case 'string': + case 'number': + case 'boolean': + case 'array': + case 'object': + return type + default: + return 'string' + } +} type ParameterTableProps = { title: string - parameters: WebhookParam[] - onChange: (params: WebhookParam[]) => void + parameters: WebhookParameter[] + onChange: (params: WebhookParameter[]) => void readonly?: boolean placeholder?: string showType?: boolean @@ -70,22 +83,19 @@ const ParameterTable: FC = ({ required: false, } - // Convert WebhookParam[] to GenericTableRow[] const tableData: GenericTableRow[] = parameters.map(param => ({ - key: param.key, + key: param.name, type: param.type, required: param.required, - value: param.value, })) const handleDataChange = (data: GenericTableRow[]) => { - const newParams: WebhookParam[] = data + const newParams: WebhookParameter[] = data .filter(row => typeof row.key === 'string' && (row.key as string).trim() !== '') .map(row => ({ - key: String(row.key), - type: (row.type as string) || 'string', + name: String(row.key), + type: normalizeParamType((row.type as string) || 'string'), required: Boolean(row.required), - value: (row.value as string) || '', })) onChange(newParams) } diff --git a/web/app/components/workflow/nodes/trigger-webhook/panel.tsx b/web/app/components/workflow/nodes/trigger-webhook/panel.tsx index 2191e43d6b..7fc12ef556 100644 --- a/web/app/components/workflow/nodes/trigger-webhook/panel.tsx +++ b/web/app/components/workflow/nodes/trigger-webhook/panel.tsx @@ -2,7 +2,7 @@ import type { FC } from 'react' import React, { useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' -import type { HttpMethod, WebhookParam, WebhookParameter, WebhookTriggerNodeType } from './types' +import type { HttpMethod, WebhookTriggerNodeType } from './types' import useConfig from './use-config' import ParameterTable from './components/parameter-table' import HeaderTable from './components/header-table' @@ -114,8 +114,8 @@ const Panel: FC> = ({ handleParamsChange(params as unknown as WebhookParameter[])} + parameters={inputs.params} + onChange={handleParamsChange} placeholder={t(`${i18nPrefix}.noQueryParameters`)} showType={false} /> @@ -135,8 +135,8 @@ const Panel: FC> = ({ handleBodyChange(params as unknown as WebhookParameter[])} + parameters={inputs.body} + onChange={handleBodyChange} placeholder={t(`${i18nPrefix}.noBodyParameters`)} showType={true} isRequestBody={true} diff --git a/web/app/components/workflow/nodes/trigger-webhook/types.ts b/web/app/components/workflow/nodes/trigger-webhook/types.ts index cbc6ae2b24..472aa1f97d 100644 --- a/web/app/components/workflow/nodes/trigger-webhook/types.ts +++ b/web/app/components/workflow/nodes/trigger-webhook/types.ts @@ -12,13 +12,6 @@ export type WebhookParameter = { required: boolean } -export type WebhookParam = { - key: string - type: string - value: string - required: boolean -} - export type WebhookHeader = { name: string required: boolean