P8-Panels/app/components/p8p_app_progress.js

61 lines
2.4 KiB
JavaScript

/*
Парус 8 - Панели мониторинга
Компонент: Индикатор процесса
*/
//---------------------
//Подключение библиотек
//---------------------
import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import Dialog from "@mui/material/Dialog"; //базовый класс диалога Material UI
import DialogTitle from "@mui/material/DialogTitle"; //Заголовок диалога
import DialogContent from "@mui/material/DialogContent"; //Содержимое диалога
import DialogContentText from "@mui/material/DialogContentText"; //Текст содержимого диалога
import LinearProgress from "@mui/material/LinearProgress"; //Индикатор
import { P8P_DIALOG_TITLE_VARIANT } from "../theme/variants/p8p_dialog_title_variants"; //Варианты заголовков диалога
import { P8P_DIALOG_CONTENT_TEXT_VARIANT } from "../theme/variants/p8p_dialog_content_text_variants"; //Варианты текста содержимого диалога
//-----------
//Тело модуля
//-----------
//Индикатора прогресса
const P8PAppProgress = props => {
//Извлекаем необходимые свойства
let { open, title, text } = props;
//Генерация содержимого
return (
<div>
<Dialog open={open || false} aria-labelledby="progress-dialog-title" aria-describedby="progress-dialog-description">
{title ? (
<DialogTitle id="progress-dialog-title" variant={P8P_DIALOG_TITLE_VARIANT.PRIMARY}>
{title}
</DialogTitle>
) : null}
<DialogContent>
<DialogContentText id="progress-dialog-description" variant={P8P_DIALOG_CONTENT_TEXT_VARIANT.PRIMARY}>
{text}
</DialogContentText>
<LinearProgress />
</DialogContent>
</Dialog>
</div>
);
};
//Контроль свойств - Индикатора прогресса
P8PAppProgress.propTypes = {
open: PropTypes.bool,
title: PropTypes.string,
text: PropTypes.string.isRequired
};
//----------------
//Интерфейс модуля
//----------------
export { P8PAppProgress };