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, }, ]; }