/*
    Парус 8 - Панели мониторинга - Редактор запросов
    Компонент: Список сущностей
*/

//---------------------
//Подключение библиотек
//---------------------

import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { List } from "@mui/material"; //Интерфейсные компоненты MUI
import { APP_STYLES } from "../../../../../app.styles"; //Общие стили приложения
import { Entity, ENTITY_VARIANT, ENTITY_BRIEF_SHAPE } from "../entity/entity"; //Сущности

//---------
//Константы
//---------

//Стили
const STYLES = {
    LIST: { height: "100%", width: "100%", bgcolor: "background.paper", overflowY: "auto", ...APP_STYLES.SCROLL }
};

//-----------
//Тело модуля
//-----------

//Список сущностей
const EntsList = ({ ents = [], onSelect = null } = {}) => {
    //При нажатии на элемент списка
    const handleItemClick = ent => onSelect && onSelect(ent);

    //Формирование представления
    return (
        <List sx={STYLES.LIST}>
            {ents && ents.map((ent, i) => <Entity key={i} data={ent} variant={ENTITY_VARIANT.LIST_ITEM} onClick={handleItemClick} />)}
        </List>
    );
};

//Контроль свойств компонента - Список сущностей
EntsList.propTypes = {
    ents: PropTypes.arrayOf(ENTITY_BRIEF_SHAPE),
    onSelect: PropTypes.func
};

//----------------
//Интерфейс модуля
//----------------

export { EntsList };
