/* Парус 8 - Панели мониторинга - Редактор панелей Редактор свойств компонента панели */ //--------------------- //Подключение библиотек //--------------------- import React from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Box, Typography } from "@mui/material"; //Интерфейсные элементы import { useComponentModule } from "./components/components_hooks"; //Хуки компонентов import "./panels_editor.css"; //Стили редактора //----------- //Тело модуля //----------- //Редактор свойств компонента панели const ComponentEditor = ({ id, path, settings = {}, valueProviders = {}, onSettingsChange = null } = {}) => { //Подгрузка модуля редактора компонента (lazy здесь постоянно обновлялся при смене props, поэтому на хуке, от props независимого) const [ComponentEditor, init] = useComponentModule({ path, module: "editor" }); //Расчёт флага наличия компонента const haveComponent = path ? true : false; //Формирование представления return ( {haveComponent && init && ( )} {!haveComponent && Компонент не определён} ); }; //Контроль свойств компонента - редактор свойств компонента панели ComponentEditor.propTypes = { id: PropTypes.string.isRequired, path: PropTypes.string.isRequired, settings: PropTypes.object, valueProviders: PropTypes.object, onSettingsChange: PropTypes.func }; //---------------- //Интерфейс модуля //---------------- export { ComponentEditor };