Spaces:
Build error
Build error
import type { FC } from 'react' | |
import { | |
memo, | |
useMemo, | |
useRef, | |
} from 'react' | |
import type { NodeProps } from 'reactflow' | |
import { useTranslation } from 'react-i18next' | |
import NodeGroupItem from './components/node-group-item' | |
import type { VariableAssignerNodeType } from './types' | |
const i18nPrefix = 'workflow.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`), | |
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 px-1 space-y-0.5' ref={ref}> | |
{ | |
groups.map((item) => { | |
return ( | |
<NodeGroupItem | |
key={item.title} | |
item={item} | |
/> | |
) | |
}) | |
} | |
</div > | |
) | |
} | |
export default memo(Node) | |