import { getGridTree } from 'actions/base.action';
import { useEffect, useState } from 'react';
import { isEmpty, concat, compact } from 'lodash';
export default function useGrid(params = {}, isEdit) {
    const [treeData, setTreeData] = useState([]);
    const [gridIds, setGridIds] = useState([]);
    useEffect(() => {
        getGridTree(Object.assign({ oneLevel: true }, params)).then(setTreeData);
    }, []);
    // useEffect(() => {
    // 	if (!isEdit) {
    // 		getGridTree({
    // 			oneLevel: true,
    // 			...params,
    // 		}).then(setTreeData);
    // 	}
    // 	if (isEdit && isEmpty(gridIds)) {
    // 		getGridTree({
    // 			oneLevel: true,
    // 			...params,
    // 		}).then(setTreeData);
    // 	}
    // }, []);
    // useEffect(() => {
    // 	if (isEdit && !isEmpty(gridIds)) {
    // 		Promise.all(
    // 			['', ...gridIds].map((item) =>
    // 				getGridTree({
    // 					oneLevel: true,
    // 					gridId: item,
    // 				}),
    // 			),
    // 		).then((values) => {
    // 			setTreeData(concat(...compact(values)));
    // 		});
    // 	}
    // }, [gridIds]);
    const onLoadData = ({ id, value }) => {
        return getGridTree({
            oneLevel: true,
            gridId: value,
        }).then((data) => {
            setTreeData(treeData.concat(data));
        });
    };
    return [
        treeData,
        {
            onLoadData,
            setGridIds,
            gridExpandedKeys: gridIds,
        },
    ];
}