/* Парус 8 - Панели мониторинга - УДП - Доски задач Компонент: Диалог примечания */ //--------------------- //Подключение библиотек //--------------------- import React, { useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Dialog, DialogTitle, IconButton, Icon, DialogContent, DialogActions, Button, TextField } from "@mui/material"; //Интерфейсные компоненты import { CustomInputField } from "./custom_input_field.js"; //Кастомное поле ввода import { COMMON_STYLES } from "../styles"; //Общие стили //Стили const STYLES = { DIALOG_CONTENT: { paddingTop: 0, paddingBottom: 0 } }; //--------------- //Тело компонента //--------------- //Диалог примечания const NoteDialog = ({ noteTypes, onCallback, onClose }) => { //Собственное состояние const [note, setNote] = useState({ noteTypeIndex: 0, text: "" }); //При изменении примечания const handleNoteChange = value => setNote(pv => ({ ...pv, text: value })); //При изменении заголовка примечания const handleNoteHeaderChange = (name, value) => { setNote(pv => ({ ...pv, noteTypeIndex: value })); }; //При закрытии диалога с изменением примечания const handleDialogOk = () => { //Передаем информацию о примечание в callback onCallback({ header: noteTypes[note.noteTypeIndex], text: note.text }); onClose(); }; //Генерация содержимого return ( Примечание close [...prev, { id: prev.length, caption: cur }], [])} onChange={handleNoteHeaderChange} margin="dense" /> handleNoteChange(e.target.value)} /> ); }; //Контроль свойств - Диалог примечания NoteDialog.propTypes = { noteTypes: PropTypes.array, onCallback: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired }; //---------------- //Интерфейс модуля //---------------- export { NoteDialog };