Portal/rsconcept/frontend/src/dialogs/DlgCreateOperation/TabSynthesisOperation.tsx

69 lines
1.9 KiB
TypeScript
Raw Normal View History

2024-07-21 15:17:36 +03:00
import FlexColumn from '@/components/ui/FlexColumn';
import Label from '@/components/ui/Label';
import TextArea from '@/components/ui/TextArea';
import TextInput from '@/components/ui/TextInput';
import AnimateFade from '@/components/wrap/AnimateFade';
2024-07-26 21:08:31 +03:00
import { IOperationSchema, OperationID } from '@/models/oss';
2024-07-21 15:17:36 +03:00
2024-07-26 21:08:31 +03:00
import PickMultiOperation from '../../components/select/PickMultiOperation';
2024-07-21 15:17:36 +03:00
interface TabSynthesisOperationProps {
oss: IOperationSchema;
alias: string;
setAlias: React.Dispatch<React.SetStateAction<string>>;
title: string;
setTitle: React.Dispatch<React.SetStateAction<string>>;
comment: string;
setComment: React.Dispatch<React.SetStateAction<string>>;
2024-07-26 17:30:37 +03:00
inputs: OperationID[];
2024-07-21 15:17:36 +03:00
setInputs: React.Dispatch<React.SetStateAction<OperationID[]>>;
}
function TabSynthesisOperation({
oss,
alias,
setAlias,
title,
setTitle,
comment,
setComment,
2024-07-26 17:30:37 +03:00
inputs,
2024-07-21 15:17:36 +03:00
setInputs
}: TabSynthesisOperationProps) {
return (
<AnimateFade className='cc-column'>
<TextInput
id='operation_title'
label='Полное название'
value={title}
onChange={event => setTitle(event.target.value)}
/>
<div className='flex gap-6'>
<TextInput
id='operation_alias'
label='Сокращение'
2024-08-22 23:23:26 +03:00
className='w-[16rem]'
2024-07-21 15:17:36 +03:00
value={alias}
onChange={event => setAlias(event.target.value)}
/>
<TextArea
id='operation_comment'
label='Описание'
noResize
rows={3}
value={comment}
onChange={event => setComment(event.target.value)}
/>
</div>
2024-07-26 21:08:31 +03:00
<FlexColumn>
<Label text={`Выбор аргументов: [ ${inputs.length} ]`} />
<PickMultiOperation items={oss.items} selected={inputs} setSelected={setInputs} rows={6} />
</FlexColumn>
2024-07-21 15:17:36 +03:00
</AnimateFade>
);
}
export default TabSynthesisOperation;