72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
|     Парус 8 - Панели мониторинга - Редакторы панелей
 | |
|     Компонент: Информационное сообщение внутри компонента
 | |
| */
 | |
| 
 | |
| //---------------------
 | |
| //Подключение библиотек
 | |
| //---------------------
 | |
| 
 | |
| import React from "react"; //Классы React
 | |
| import PropTypes from "prop-types"; //Контроль свойств компонента
 | |
| import { Stack, Icon, Typography } from "@mui/material"; //Интерфейсные элементы
 | |
| import { TEXTS } from "../../../app.text"; //Общие текстовые ресурсы
 | |
| 
 | |
| //---------
 | |
| //Константы
 | |
| //---------
 | |
| 
 | |
| //Типы сообщений компонентов
 | |
| const P8P_COMPONENT_INLINE_MESSAGE_TYPE = {
 | |
|     COMMON: "COMMON",
 | |
|     ERROR: "ERROR"
 | |
| };
 | |
| 
 | |
| //Типовые сообщения компонентов
 | |
| const P8P_COMPONENT_INLINE_MESSAGE = {
 | |
|     NO_DATA_FOUND: TEXTS.NO_DATA_FOUND,
 | |
|     NO_SETTINGS: TEXTS.NO_SETTINGS
 | |
| };
 | |
| 
 | |
| //-----------
 | |
| //Тело модуля
 | |
| //-----------
 | |
| 
 | |
| //Информационное сообщение внутри компонента
 | |
| const P8PComponentInlineMessage = ({ icon, name, message, type = P8P_COMPONENT_INLINE_MESSAGE_TYPE.COMMON }) => {
 | |
|     //Формирование представления
 | |
|     return (
 | |
|         <Stack direction={"column"}>
 | |
|             <Stack direction={"row"} justifyContent={"center"} alignItems={"center"}>
 | |
|                 {icon && <Icon color={"disabled"}>{icon}</Icon>}
 | |
|                 {name && (
 | |
|                     <Typography align={"center"} color={"text.secondary"} variant={"button"}>
 | |
|                         {name}
 | |
|                     </Typography>
 | |
|                 )}
 | |
|             </Stack>
 | |
|             <Typography
 | |
|                 align={"center"}
 | |
|                 color={type != P8P_COMPONENT_INLINE_MESSAGE_TYPE.ERROR ? "text.secondary" : "error.dark"}
 | |
|                 variant={"caption"}
 | |
|             >
 | |
|                 {message}
 | |
|             </Typography>
 | |
|         </Stack>
 | |
|     );
 | |
| };
 | |
| 
 | |
| //Контроль свойств - Информационное сообщение внутри компонента
 | |
| P8PComponentInlineMessage.propTypes = {
 | |
|     icon: PropTypes.string,
 | |
|     name: PropTypes.string,
 | |
|     message: PropTypes.string.isRequired,
 | |
|     type: PropTypes.oneOf(Object.values(P8P_COMPONENT_INLINE_MESSAGE_TYPE))
 | |
| };
 | |
| 
 | |
| //----------------
 | |
| //Интерфейс модуля
 | |
| //----------------
 | |
| 
 | |
| export { P8P_COMPONENT_INLINE_MESSAGE_TYPE, P8P_COMPONENT_INLINE_MESSAGE, P8PComponentInlineMessage };
 |