Feat: Limit the iteration start node to only be the source node #4242 (#4260)

### What problem does this PR solve?

Feat: Limit the iteration start node to only be the source node #4242

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu 2024-12-27 14:25:15 +08:00 committed by GitHub
parent f948c0d9f1
commit 146e8bb793
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 12 additions and 4 deletions

View File

@ -1093,6 +1093,9 @@ This delimiter is used to split the input text into several text pieces echo of
minus: 'Minus',
semicolon: 'Semicolon',
},
addVariable: 'Add variable',
variableSettings: 'Variable settings',
globalVariables: 'Global variables',
},
footer: {
profile: 'All rights reserved @ React',

View File

@ -1030,6 +1030,8 @@ export default {
minus: '減號',
semicolon: '分號',
},
addVariable: '新增變數',
variableSettings: '變數設定',
},
footer: {
profile: '“保留所有權利 @ react”',

View File

@ -1074,6 +1074,8 @@ export default {
minus: '减号',
semicolon: '分号',
},
addVariable: '新增变量',
variableSettings: '变量设置',
},
footer: {
profile: 'All rights reserved @ React',

View File

@ -44,8 +44,6 @@ export function ButtonEdge({
};
// highlight the nodes that the workflow passes through
// const queryClient = useQueryClient();
// const flowDetail = queryClient.getQueryData<IFlow>(['flowDetail']);
const { data: flowDetail } = useFetchFlow();
const graphPath = useMemo(() => {

View File

@ -109,6 +109,7 @@ export function IterationStartNode({
isConnectable={isConnectable}
className={styles.handle}
style={RightHandleStyle}
isConnectableEnd={false}
></Handle>
<div>
<ListRestart className="size-7" />

View File

@ -3,6 +3,7 @@ import { IModalProps } from '@/interfaces/common';
import { Form, Input, Modal, Select, Switch } from 'antd';
import { DefaultOptionType } from 'antd/es/select';
import { useEffect, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { BeginQueryType, BeginQueryTypeIconMap } from '../../constant';
import { BeginQuery } from '../../interface';
import BeginDynamicOptions from './begin-dynamic-options';
@ -16,6 +17,7 @@ export const ModalForm = ({
initialValue: BeginQuery;
otherThanCurrentQuery: BeginQuery[];
}) => {
const { t } = useTranslation();
const [form] = Form.useForm();
const options = useMemo(() => {
return Object.values(BeginQueryType).reduce<DefaultOptionType[]>(
@ -56,7 +58,7 @@ export const ModalForm = ({
return (
<Modal
title="Begin query"
title={t('flow.variableSettings')}
open={visible}
onOk={onOk}
onCancel={hideModal}

View File

@ -91,7 +91,7 @@ const DynamicVariableForm = ({ node }: IProps) => {
icon={<PlusOutlined />}
className={styles.addButton}
>
{t('flow.addItem')}
{t('flow.addVariable')}
</Button>
</Form.Item>
</>