/*
Парус 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 };