/* Парус 8 - Панели мониторинга - РО - Редактор настройки регламентированного отчёта Компонент панели: Закладка раздела */ //--------------------- //Подключение библиотек //--------------------- import React, { useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Tab, IconButton, Icon, Stack } from "@mui/material"; //Интерфейсные компоненты import { STYLES as COMMON_STYLES } from "../common"; //Общие стили и константы //--------- //Константы //--------- //Стили const STYLES = { SECTION_TAB: { minWidth: "150px" }, SECTION_TAB_LABEL: { width: "100%", height: "100%" }, SECTION_TAB_TOOLBAR_STACK: { ...COMMON_STYLES.TOOLBAR, height: "100%", width: "100%" } }; //----------- //Тело модуля //----------- //Закладка раздела const SectionTab = ({ value = false, section, sectionDesc, onSectionEdit, onSectionDelete, ...other }) => { //Флаг нахождения указателя мыши в закладке const [hoveredSection, setHoveredSection] = useState(false); //При попадании мыши на закладку раздела const handleSectionTabMouseIn = () => setHoveredSection(true); //При выходе мыши из закладки раздела const handleSectionTabMouseOut = () => setHoveredSection(false); //При редактировании раздела настройки const handleSectionEdit = () => onSectionEdit && onSectionEdit(sectionDesc.NRN); //При удалении раздела настройки const handleSectionDelete = () => onSectionDelete && onSectionDelete(sectionDesc.NRN); //Формирование представления return ( {`${sectionDesc.SCODE} - ${sectionDesc.SNAME_SHORT}`} {section === sectionDesc.NRN && hoveredSection && ( edit delete )} } {...other} /> ); }; //Контроль свойств - Закладка раздела SectionTab.propTypes = { value: PropTypes.any, section: PropTypes.number, sectionDesc: PropTypes.object.isRequired, onSectionEdit: PropTypes.func, onSectionDelete: PropTypes.func }; //---------------- //Интерфейс модуля //---------------- export { SectionTab };