diff --git a/web/app/components/workflow/block-selector/utils.ts b/web/app/components/workflow/block-selector/utils.ts deleted file mode 100644 index 76b3f64d9b..0000000000 --- a/web/app/components/workflow/block-selector/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { BlockEnum } from '../types' -import { BLOCKS } from './constants' - -export const getBlockByType = (type: BlockEnum) => { - return BLOCKS.find(block => block.type === type) -} diff --git a/web/app/components/workflow/nodes/_base/node.tsx b/web/app/components/workflow/nodes/_base/node.tsx index f6067c078b..ffbdad4ee2 100644 --- a/web/app/components/workflow/nodes/_base/node.tsx +++ b/web/app/components/workflow/nodes/_base/node.tsx @@ -12,7 +12,6 @@ import type { NodeProps } from 'reactflow' import { getOutgoers } from 'reactflow' import { useWorkflowContext } from '../../context' import BlockSelector from '../../block-selector' -import { getBlockByType } from '../../block-selector/utils' import BlockIcon from '../../block-icon' import { Plus } from '@/app/components/base/icons/src/vender/line/general' @@ -71,7 +70,7 @@ const BaseNode: FC = ({ size='md' />
- {getBlockByType(currentNode!.data.type)?.title} + {data.title}
{cloneElement(children, { id: nodeId, data })} diff --git a/web/app/components/workflow/nodes/_base/panel.tsx b/web/app/components/workflow/nodes/_base/panel.tsx index ed94b8df07..77b8932b7c 100644 --- a/web/app/components/workflow/nodes/_base/panel.tsx +++ b/web/app/components/workflow/nodes/_base/panel.tsx @@ -9,7 +9,6 @@ import { import type { NodeProps } from 'reactflow' import { useWorkflowContext } from '../../context' import BlockIcon from '../../block-icon' -import { getBlockByType } from '../../block-selector/utils' import NextStep from './components/next-step' import { XClose } from '@/app/components/base/icons/src/vender/line/general' import { GitBranch01 } from '@/app/components/base/icons/src/vender/line/development' @@ -37,7 +36,7 @@ const BasePanel: FC = ({ type={selectedNode!.data.type} size='md' /> -
{getBlockByType(selectedNode!.data.type)?.title}
+
{data.title}
= { +export const NodeComponentMap: Record = { [BlockEnum.Start]: StartNode, [BlockEnum.End]: EndNode, [BlockEnum.DirectAnswer]: DirectAnswerNode, @@ -37,7 +37,7 @@ export const NodeMap: Record = { [BlockEnum.Tool]: ToolNode, } -export const PanelMap: Record = { +export const PanelComponentMap: Record = { [BlockEnum.Start]: StartPanel, [BlockEnum.End]: EndPanel, [BlockEnum.DirectAnswer]: DirectAnswerPanel, diff --git a/web/app/components/workflow/nodes/index.tsx b/web/app/components/workflow/nodes/index.tsx index 8a8139c5de..ef160f2cab 100644 --- a/web/app/components/workflow/nodes/index.tsx +++ b/web/app/components/workflow/nodes/index.tsx @@ -6,8 +6,8 @@ import { } from 'reactflow' import { useWorkflowContext } from '../context' import { - NodeMap, - PanelMap, + NodeComponentMap, + PanelComponentMap, } from './constants' import BaseNode from './_base/node' import BasePanel from './_base/panel' @@ -16,7 +16,7 @@ const CustomNode = ({ id, data, }: NodeProps) => { - const NodeComponent = NodeMap[data.type] + const NodeComponent = NodeComponentMap[data.type] return ( <> @@ -40,13 +40,13 @@ const CustomNode = ({ ) } -export const Panel = () => { +export const Panel = memo(() => { const { selectedNode } = useWorkflowContext() if (!selectedNode) return null - const PanelComponent = PanelMap[selectedNode.data.type] + const PanelComponent = PanelComponentMap[selectedNode.data.type] return ( { ) -} +}) + +Panel.displayName = 'Panel' export default memo(CustomNode)