ConceptPortal-public/rsconcept/frontend/src/features/oss/dialogs/DlgEditOperation/TabArguments.tsx

29 lines
971 B
TypeScript
Raw Normal View History

2024-07-29 16:56:24 +03:00
'use client';
import { FlexColumn } from '@/components/Container';
import { Label } from '@/components/Input';
2024-07-29 16:56:24 +03:00
import PickMultiOperation from '../../components/PickMultiOperation';
import { IOperationSchema, OperationID } from '../../models/oss';
2024-07-29 16:56:24 +03:00
interface TabArgumentsProps {
oss: IOperationSchema;
target: OperationID;
inputs: OperationID[];
setInputs: React.Dispatch<React.SetStateAction<OperationID[]>>;
}
function TabArguments({ oss, inputs, target, setInputs }: TabArgumentsProps) {
const potentialCycle = [target, ...oss.graph.expandAllOutputs([target])];
const filtered = oss.items.filter(item => !potentialCycle.includes(item.id));
2024-07-29 16:56:24 +03:00
return (
<div className='cc-fade-in cc-column'>
2024-07-29 16:56:24 +03:00
<FlexColumn>
<Label text={`Выбор аргументов: [ ${inputs.length} ]`} />
<PickMultiOperation items={filtered} value={inputs} onChange={setInputs} rows={8} />
2024-07-29 16:56:24 +03:00
</FlexColumn>
</div>
2024-07-29 16:56:24 +03:00
);
}
export default TabArguments;