/* Парус 8 - Панели мониторинга - ПУП - Мониторинг сборки изделий Компонент: Информация по прогрессу объекта */ //--------------------- //Подключение библиотек //--------------------- import React from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Typography, Box } from "@mui/material"; //Интерфейсные элементы //--------- //Константы //--------- //Стили const STYLES = { PROGRESS_BOX: (width, height) => ({ display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column", margin: "0px 32px", borderRadius: "50%", backgroundColor: "background.progress", ...(width ? { width } : {}), ...(height ? { height } : {}) }) }; //----------- //Тело модуля //----------- //Информация по прогрессу объекта const ProgressBox = ({ progress, detail, width, height, progressVariant, detailVariant }) => { //Определяем цвет тени let boxShadow = "0 0 30px #d3d3d3"; switch (true) { case progress >= 70: boxShadow = "0 0 30px #21d21e66"; break; case progress >= 40: boxShadow = "0 0 30px #fddd3566"; break; case progress >= 10: boxShadow = "0 0 30px #ea5c4966"; break; } //Возвращаем содержимое return ( {`${progress}%`} {detail} ); }; //Контроль свойств - Информация по прогрессу объекта ProgressBox.propTypes = { progress: PropTypes.number, detail: PropTypes.string, width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), progressVariant: PropTypes.string, detailVariant: PropTypes.string }; //---------------- //Интерфейс модуля //---------------- export { ProgressBox };