/* Кастомный Dialog */ //--------------------- //Подключение библиотек //--------------------- import React from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Dialog, DialogTitle, IconButton, Icon, DialogContent, Typography, DialogActions, Button } from "@mui/material"; //Интерфейсные компоненты import { CustomFormControl } from "./custom_form_control"; //Кастомные строки ввода import { Statuses, STYLES } from "./layouts"; //Статусы и стили диалогового окна //----------- //Тело модуля //----------- const CustomDialog = props => { const { formOpen, closeForm, curStatus, curCode, curName, curColCode, curRowCode, btnOkClick, codeOnChange, nameOnChange, dictColumnClick, dictRowClick } = props; //Формирование заголовка диалогового окна const formTitle = () => { switch (curStatus) { case Statuses.CREATE: return "Добавление раздела"; case Statuses.EDIT: return "Исправление раздела"; case Statuses.DELETE: return "Удаление раздела"; case Statuses.COLUMNROW_CREATE: return "Добавление показателя раздела"; case Statuses.COLUMNROW_EDIT: return "Исправление показателя раздела"; case Statuses.COLUMNROW_DELETE: return "Удаление показателя раздела"; } }; //Отрисовка диалогового окна const renderSwitch = () => { var btnText = ""; switch (curStatus) { case Statuses.CREATE: case Statuses.COLUMNROW_CREATE: btnText = "Добавить"; break; case Statuses.EDIT: case Statuses.COLUMNROW_EDIT: btnText = "Исправить"; break; case Statuses.DELETE: case Statuses.COLUMNROW_DELETE: btnText = "Удалить"; break; } return ( ); }; return ( {formTitle()} theme.palette.grey[500] }} > close {curStatus == Statuses.DELETE || curStatus == Statuses.COLUMNROW_DELETE ? ( curStatus == Statuses.DELETE ? ( Вы хотите удалить раздел {curName}? ) : ( Вы хотите удалить показатель раздела {curName}? ) ) : (
{curStatus != Statuses.COLUMNROW_EDIT ? ( ) : null} {curStatus == Statuses.COLUMNROW_CREATE ? (
) : null}
)}
{renderSwitch()}
); }; CustomDialog.propTypes = { formOpen: PropTypes.bool.isRequired, closeForm: PropTypes.func.isRequired, curStatus: PropTypes.oneOf(Object.values(Statuses).filter(x => typeof x === "number")), curCode: PropTypes.string, curName: PropTypes.string, curColCode: PropTypes.string, curRowCode: PropTypes.string, btnOkClick: PropTypes.func.isRequired, codeOnChange: PropTypes.func.isRequired, nameOnChange: PropTypes.func.isRequired, dictColumnClick: PropTypes.func.isRequired, dictRowClick: PropTypes.func.isRequired }; //---------------- //Интерфейс модуля //---------------- export { CustomDialog };