ConceptPortal-public/rsconcept/frontend/src/pages/RSFormPage/CreateCstModal.tsx

43 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-07-22 12:24:14 +03:00
import Modal from '../../components/Common/Modal';
import { CstType } from '../../utils/models';
import Select from 'react-select';
import { CstTypeSelector } from '../../utils/staticUI';
import { useEffect, useState } from 'react';
2023-07-22 12:24:14 +03:00
interface CreateCstModalProps {
show: boolean
toggle: () => void
onCreate: (type: CstType) => void
}
function CreateCstModal({show, toggle, onCreate}: CreateCstModalProps) {
const [validated, setValidated] = useState(false);
const [selectedType, setSelectedType] = useState<CstType|undefined>(undefined);
2023-07-22 12:24:14 +03:00
const handleSubmit = () => {
if (selectedType) onCreate(selectedType);
2023-07-22 12:24:14 +03:00
};
useEffect(() => {
setValidated(selectedType !== undefined);
}, [selectedType]
);
2023-07-22 12:24:14 +03:00
return (
<Modal
title='Создание конституенты'
show={show}
toggle={toggle}
canSubmit={validated}
onSubmit={handleSubmit}
>
<Select
options={CstTypeSelector}
placeholder='Выберите тип'
onChange={(data) => setSelectedType(data?.value)}
/>
2023-07-22 12:24:14 +03:00
</Modal>
)
}
export default CreateCstModal;