/* Парус 8 - Панели мониторинга - Примеры для разработчиков Пример: API для взаимодействия с "ПАРУС 8 Онлайн" и ядром фреймворка */ //--------------------- //Подключение библиотек //--------------------- import React, { useState, useContext } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Typography, Button, Divider } from "@mui/material"; //Интерфейсные элементы import { ApplicationCtx } from "../../context/application"; //Контекст приложения //--------- //Константы //--------- //Стили const STYLES = { CONTAINER: { textAlign: "center", paddingTop: "20px" }, TITLE: { paddingBottom: "15px" }, DIVIDER: { margin: "15px" } }; //----------- //Тело модуля //----------- //Пример: API для взаимодействия с "ПАРУС 8 Онлайн" и ядром фреймворка const P8Online = ({ title }) => { //Собственное состояние - флаг отображения пользовательского текста заголовка const [titleCustom, setTitleCustom] = useState(false); //Собственное состояние - флаг отображения заголовка const [titleVisible, setTitleVisible] = useState(true); //Собственное состояние - выбранный контрагент const [agent, setAgent] = useState(""); //Подключение к контексту приложения const { pOnlineShowUnit, pOnlineShowTab, pOnlineShowDocument, pOnlineShowDictionary, setAppBarTitle, setAppBarShow, findPanelByName } = useContext(ApplicationCtx); //Генерация содержимого return (
{title} {/* Изменение текста заголовка */} {titleVisible && ( <> )} {/* Сокрытие/отображение заголовка */} {/* Поиск панели */} {/* Открыть новую закладку */} {/* Открыть раздел */} {/* Открыть раздел в режиме словаря */} {/* Позиционирование/отбор документа */} {agent ? ( <> ) : null}
); }; //Контроль свойств - Пример: API для взаимодействия с "ПАРУС 8 Онлайн" P8Online.propTypes = { title: PropTypes.string.isRequired }; //---------------- //Интерфейс модуля //---------------- export { P8Online };