Commit 2094a554 authored by StyleZhang's avatar StyleZhang

multiple edge

parent 4837ae49
......@@ -33,13 +33,13 @@ const initialNodes = [
id: '3',
type: 'custom',
position: { x: 738, y: 130 },
data: { type: 'llm', sortIndexInBranches: 0 },
data: { type: 'question-classifier', sortIndexInBranches: 0 },
},
{
id: '4',
type: 'custom',
position: { x: 738, y: 330 },
data: { type: 'llm', sortIndexInBranches: 1 },
data: { type: 'variable-assigner', sortIndexInBranches: 1 },
},
// {
// id: '5',
......
......@@ -106,6 +106,7 @@ export const useWorkflow = () => {
filtered.push({
id: `${source}-${target}`,
type: 'custom',
source: source!,
target: target!,
sourceHandle,
......
......@@ -32,7 +32,7 @@ const CustomNode = memo((props: NodeProps) => {
<NodeComponent />
</BaseNode>
{
nodeData.type !== BlockEnum.IfElse && (
nodeData.type !== BlockEnum.IfElse && nodeData.type !== BlockEnum.QuestionClassifier && (
<NodeSourceHandle
{ ...props }
handleClassName='!top-[17px] !-right-2'
......
import type { FC } from 'react'
import { useState } from 'react'
import type { NodeProps } from 'reactflow'
import InfoPanel from '../_base/components/info-panel'
import { NodeSourceHandle } from '../_base/components/node-handle'
import { mockData } from './mock'
import {
useTextGenerationCurrentProviderAndModelAndModelList,
} from '@/app/components/header/account-setting/model-provider-page/hooks'
import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector'
const Node: FC = () => {
const Node: FC<Pick<NodeProps, 'id' | 'data'>> = (props) => {
const { provider, name: modelId } = mockData.model
const tempTopics = mockData.topics
const [topics, setTopics] = useState(tempTopics)
......@@ -23,11 +25,20 @@ const Node: FC = () => {
/>
<div className='mt-2 space-y-0.5'>
{topics.map(topic => (
<InfoPanel
<div
key={topic.id}
title={topic.name}
content={topic.topic}
/>
className='relative'
>
<InfoPanel
title={topic.name}
content={topic.topic}
/>
<NodeSourceHandle
{...props}
handleId={topic.name}
handleClassName='!top-[11px] !-right-[21px]'
/>
</div>
))}
{/* For test */}
<div
......
import type { FC } from 'react'
import { useState } from 'react'
import type { NodeProps } from 'reactflow'
import { useTranslation } from 'react-i18next'
import { NodeTargetHandle } from '../_base/components/node-handle'
import { mockData } from './mock'
import { getNodeInfoById } from '@/app/components/workflow/nodes/_base/components/variable/var-reference-picker'
import { VarBlockIcon } from '@/app/components/workflow/block-icon'
......@@ -8,7 +10,7 @@ import { Line3 } from '@/app/components/base/icons/src/public/common'
import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development'
const i18nPrefix = 'workflow.nodes.variableAssigner'
const Node: FC = () => {
const Node: FC<Pick<NodeProps, 'id' | 'data'>> = (props) => {
const { t } = useTranslation()
const { variables: tempVar, output_type } = mockData
const [variables, setVariables] = useState(tempVar)
......@@ -35,7 +37,12 @@ const Node: FC = () => {
const node = getNodeInfoById(item[0])
const varName = item[item.length - 1]
return (
<div key={index} className='flex items-center h-6 bg-gray-100 rounded-md px-1 text-xs font-normal text-gray-700' >
<div key={index} className='relative flex items-center h-6 bg-gray-100 rounded-md px-1 text-xs font-normal text-gray-700' >
<NodeTargetHandle
{...props}
handleId={varName}
handleClassName='!top-1 !-left-[21px]'
/>
<div className='flex items-center'>
<div className='p-[1px]'>
<VarBlockIcon
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment