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