/*
    Парус 8 - Панели мониторинга - ТОиР - Гаражка
    Пользовательские хуки: Хуки открытия разделов
*/

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

import { useContext, useCallback } from "react"; //Классы React
import { ApplicationСtx } from "../../../context/application"; //Контекст приложения

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

//Состояние открытия разделов
const useDictionary = () => {
    //Подключение к контексту приложения
    const { pOnlineShowDictionary } = useContext(ApplicationСtx);

    //Отображение раздела "Штатные подразделения"
    const handleInsDepartmentOpen = useCallback(
        async prms => {
            pOnlineShowDictionary({
                unitCode: "INS_DEPARTMENT",
                inputParameters: [{ name: "in_CODE", value: prms.sCode }],
                callBack: res => {
                    res.success ? prms.callBack(res) : null;
                }
            });
        },
        [pOnlineShowDictionary]
    );

    //Отображение раздела "Типовые работы по техническому обслуживанию и ремонту"
    const handleEquipTypeWorksOpen = useCallback(
        async prms => {
            pOnlineShowDictionary({
                unitCode: "EquipTypeWorks",
                inputParameters: [{ name: "in_CODE", value: prms.sCode }],
                callBack: res => {
                    res.success ? prms.callBack(res) : null;
                }
            });
        },
        [pOnlineShowDictionary]
    );

    //Отображение раздела "Виды работ по техническому обслуживанию и ремонту"
    const handleEquipWorkKindsOpen = useCallback(
        async prms => {
            pOnlineShowDictionary({
                unitCode: "EquipWorkKinds",
                inputParameters: [{ name: "in_CODE", value: prms.sCode }],
                callBack: res => {
                    res.success ? prms.callBack(res) : null;
                }
            });
        },
        [pOnlineShowDictionary]
    );

    //Отображение раздела "Ремонтные ведомости"
    const handleEquipRepairSheetsOpen = useCallback(
        async prms => {
            pOnlineShowDictionary({
                unitCode: "EquipRepairSheets",
                inputParameters: [{ name: "in_RN", value: prms.nRn }],
                callBack: res => {
                    res.success ? prms.callBack(res) : null;
                }
            });
        },
        [pOnlineShowDictionary]
    );

    //Возвращаем функции открытия разделов
    return {
        handleInsDepartmentOpen,
        handleEquipTypeWorksOpen,
        handleEquipWorkKindsOpen,
        handleEquipRepairSheetsOpen
    };
};

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

export { useDictionary };
