dify/web/app/components/workflow/nodes/variable-assigner/node.tsx
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

53 lines
1.5 KiB
TypeScript

import type { FC } from 'react'
import type { NodeProps } from 'reactflow'
import type { VariableAssignerNodeType } from './types'
import { memo, useMemo, useRef } from 'react'
import { useTranslation } from 'react-i18next'
import NodeGroupItem from './components/node-group-item'
const i18nPrefix = 'nodes.variableAssigner'
const Node: FC<NodeProps<VariableAssignerNodeType>> = (props) => {
const { t } = useTranslation()
const ref = useRef<HTMLDivElement>(null)
const { id, data } = props
const { advanced_settings } = data
const groups = useMemo(() => {
if (!advanced_settings?.group_enabled) {
return [
{
groupEnabled: false,
targetHandleId: 'target',
title: t(($) => $[`${i18nPrefix}.title`], { ns: 'workflow' }),
type: data.output_type,
variables: data.variables,
variableAssignerNodeId: id,
variableAssignerNodeData: data,
},
]
}
return advanced_settings.groups.map((group) => {
return {
groupEnabled: true,
targetHandleId: group.groupId,
title: group.group_name,
type: group.output_type,
variables: group.variables,
variableAssignerNodeId: id,
variableAssignerNodeData: data,
}
})
}, [t, advanced_settings, data, id])
return (
<div className="relative mb-1 space-y-0.5 px-1" ref={ref}>
{groups.map((item) => {
return <NodeGroupItem key={item.title} item={item} />
})}
</div>
)
}
export default memo(Node)