From c09bd9fe4ad78f6500e8659ccb4a9973c8492553 Mon Sep 17 00:00:00 2001 From: balibabu Date: Mon, 26 May 2025 16:56:50 +0800 Subject: [PATCH] Feat: Convert the data of the messge operator to a string array #3221 (#7853) ### What problem does this PR solve? Feat: Convert the data of the messge operator to a string array #3221 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/pages/agent/form-sheet/next.tsx | 12 ++++++++++-- web/src/pages/agent/form/message-form/index.tsx | 4 ++-- .../pages/agent/hooks/use-watch-form-change.ts | 6 +++++- web/src/pages/agent/utils.ts | 16 ++++++++++++++++ 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/web/src/pages/agent/form-sheet/next.tsx b/web/src/pages/agent/form-sheet/next.tsx index 7998f1068..2bd9ca122 100644 --- a/web/src/pages/agent/form-sheet/next.tsx +++ b/web/src/pages/agent/form-sheet/next.tsx @@ -22,6 +22,7 @@ import { useHandleFormValuesChange } from '../hooks/use-watch-form-change'; import OperatorIcon from '../operator-icon'; import { buildCategorizeListFromObject, + convertToObjectArray, needsSingleStepDebugging, } from '../utils'; import SingleDebugDrawer from './single-debug-drawer'; @@ -79,16 +80,23 @@ const FormSheet = ({ form.clearErrors(); } + const formData = node?.data?.form; + if (operatorName === Operator.Categorize) { const items = buildCategorizeListFromObject( get(node, 'data.form.category_description', {}), ); - const formData = node?.data?.form; if (isPlainObject(formData)) { // form.setFieldsValue({ ...formData, items }); console.info('xxx'); form.reset({ ...formData, items }); } + } + if (operatorName === Operator.Message) { + form.reset({ + ...formData, + content: convertToObjectArray(formData.content), + }); } else { // form.setFieldsValue(node?.data?.form); form.reset(node?.data?.form); @@ -134,7 +142,7 @@ const FormSheet = ({ {t(`${lowerFirst(operatorName)}Description`)} -
+
{visible && ( { return (
{ e.preventDefault(); @@ -43,7 +43,7 @@ const MessageForm = ({ form }: INextOperatorForm) => { render={({ field }) => ( - {/* */} + {/* */} ) => { return pre; }, {}); }; + +export function convertToStringArray( + list: Array<{ value: string | number | boolean }>, +) { + if (!Array.isArray(list)) { + return []; + } + return list.map((x) => x.value); +} + +export function convertToObjectArray(list: Array) { + if (!Array.isArray(list)) { + return []; + } + return list.map((x) => ({ value: x })); +}