/* Парус 8 - Панели мониторинга - Примеры для разработчиков Пример: Сообщения */ //--------------------- //Подключение библиотек //--------------------- import React, { useContext, useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Typography, Divider, Button } from "@mui/material"; //Интерфейсные элементы import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений //--------- //Константы //--------- //Стили const STYLES = { CONTAINER: { textAlign: "center", paddingTop: "20px" }, TITLE: { paddingBottom: "15px" }, DIVIDER: { margin: "15px" } }; //----------- //Тело модуля //----------- //Пример: Сообщения const Messages = ({ title }) => { //Собственное состояние const [state, setState] = useState({ inlineErr: true, inlineWarn: true, inlineInfo: true }); //Подключение к контексту сообщений const { showMsgErr, showMsgWarn, showMsgInfo, InlineMsgErr, InlineMsgInfo, InlineMsgWarn } = useContext(MessagingСtx); //Генерация содержимого return (
{title} {/* Сообщение об ошибке (диалог) */} {/* Сообщение об ошибке (диалог с подробностями) */} {/* Предупреждение (диалог) */} {/* Информация (диалог) */} {/* Ошибка (встраиваемое) */} {state.inlineErr ? ( <> setState(pv => ({ ...pv, inlineErr: false }))} /> ) : null} {/* Предупреждение (встраиваемое) */} {state.inlineWarn ? ( <> setState(pv => ({ ...pv, inlineWarn: false }))} /> ) : null} {/* Информация (встраиваемое) */} {state.inlineInfo ? setState(pv => ({ ...pv, inlineInfo: false }))} /> : null}
); }; //Контроль свойств - Пример: Сообщения Messages.propTypes = { title: PropTypes.string.isRequired }; //---------------- //Интерфейс модуля //---------------- export { Messages };