From 79e435fc2eaa86a11de1327acd94a454c9c16d26 Mon Sep 17 00:00:00 2001 From: balibabu Date: Tue, 17 Dec 2024 18:07:22 +0800 Subject: [PATCH] Fix: The cursor is lost after entering a character in the operator form #4072 (#4073) ### What problem does this PR solve? Fix: The cursor is lost after entering a character in the operator form #4072 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- web/src/pages/flow/flow-drawer/index.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/src/pages/flow/flow-drawer/index.tsx b/web/src/pages/flow/flow-drawer/index.tsx index bff6c3d99..31ef22ac7 100644 --- a/web/src/pages/flow/flow-drawer/index.tsx +++ b/web/src/pages/flow/flow-drawer/index.tsx @@ -4,7 +4,7 @@ import { CloseOutlined } from '@ant-design/icons'; import { Drawer, Flex, Form, Input } from 'antd'; import { lowerFirst } from 'lodash'; import { Play } from 'lucide-react'; -import { useEffect } from 'react'; +import { useEffect, useRef } from 'react'; import { Node } from 'reactflow'; import { Operator, operatorMap } from '../constant'; import AkShareForm from '../form/akshare-form'; @@ -108,6 +108,7 @@ const FormDrawer = ({ id: node?.id, data: node?.data, }); + const previousId = useRef(node?.id); const { t } = useTranslate('flow'); @@ -115,10 +116,13 @@ const FormDrawer = ({ useEffect(() => { if (visible) { - form.resetFields(); + if (node?.id !== previousId.current) { + form.resetFields(); + } form.setFieldsValue(node?.data?.form); + previousId.current = node?.id; } - }, [visible, form, node?.data?.form]); + }, [visible, form, node?.data?.form, node?.id]); return (