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

29 lines
976 B
TypeScript
Raw Normal View History

2024-07-29 16:56:24 +03:00
'use client';
import PickMultiOperation from '@/components/select/PickMultiOperation';
2025-02-07 10:54:47 +03:00
import { FlexColumn } from '@/components/ui/Container';
import { Label } from '@/components/ui/Input';
2024-07-29 16:56:24 +03:00
import { IOperationSchema, OperationID } from '@/models/oss';
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;