UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

38 lines (35 loc) 1.31 kB
import { useEffect, useState } from "react"; import { getProgramFromAttributesOrDtElPrg, getProgramFromProgramIndicator } from "../../Functions/IndicatorDataSourceFunction"; export function useGetIndicatorProgramSource(obj, engine) { //obj strcture is { attr: [], prgInd: [] , prgDtEl: [] } const [loading, setLoading] = useState(true); const [error, setError] = useState(false); const [data, setData] = useState(); //{"dataSetName:[dataElements in {id:"",displname:""}]} useEffect(() => { let attrArr = obj === null || obj === void 0 ? void 0 : obj.attr; let proDtElArr = obj === null || obj === void 0 ? void 0 : obj.prgDtEl; let prgIndArr = obj === null || obj === void 0 ? void 0 : obj.prgInd; async function fetch() { attrArr = await getProgramFromAttributesOrDtElPrg(engine, attrArr); proDtElArr = await getProgramFromAttributesOrDtElPrg(engine, proDtElArr); prgIndArr = await getProgramFromProgramIndicator(engine, prgIndArr); } fetch().then(() => { const result = { attr: attrArr, prgInd: prgIndArr, prgDtEl: proDtElArr }; setData(result); setLoading(false); }).catch(error => { setLoading(false); setError(error); }); }, []); return { loading, error, data }; }