pref: reduce the times of useNodes reRender (#28682)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Joel
2025-11-26 16:52:47 +08:00
committed by GitHub
parent d7010f582f
commit ef0e1031b0
18 changed files with 55 additions and 25 deletions

View File

@@ -1,7 +1,5 @@
import { useCallback } from 'react'
import {
useNodes,
} from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { uniqBy } from 'lodash-es'
import {
useIsChatMode,

View File

@@ -1,6 +1,6 @@
import type { FC } from 'react'
import React from 'react'
import { useNodes } from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { useTranslation } from 'react-i18next'
import type { AssignerNodeType } from './types'
import { isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'

View File

@@ -1,6 +1,6 @@
import type { FC } from 'react'
import React from 'react'
import { useNodes } from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { useTranslation } from 'react-i18next'
import type { DocExtractorNodeType } from './types'
import { isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'

View File

@@ -3,7 +3,7 @@ import {
useMemo,
} from 'react'
import { useTranslation } from 'react-i18next'
import { useNodes } from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { ComparisonOperator } from '../types'
import {
comparisonOperatorNotRequireValue,
@@ -46,7 +46,7 @@ const ConditionValue = ({
if (Array.isArray(value)) // transfer method
return value[0]
if(value === true || value === false)
if (value === true || value === false)
return value ? 'True' : 'False'
return value.replace(/{{#([^#]*)#}}/g, (a, b) => {

View File

@@ -1,6 +1,6 @@
import type { FC } from 'react'
import React from 'react'
import { useNodes } from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { useTranslation } from 'react-i18next'
import type { ListFilterNodeType } from './types'
import { isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'

View File

@@ -3,7 +3,7 @@ import {
useMemo,
} from 'react'
import { useTranslation } from 'react-i18next'
import { useNodes } from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { useStore } from '../../../store'
import { BlockEnum } from '../../../types'
import type {

View File

@@ -1,8 +1,9 @@
import { useCallback } from 'react'
import {
useNodes,
useStoreApi,
} from 'reactflow'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { uniqBy } from 'lodash-es'
import { produce } from 'immer'
import {