@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
67 lines (61 loc) • 2.65 kB
JavaScript
import { useDataEngine } from "@dhis2/app-runtime";
import i18n from "@dhis2/d2-i18n";
import { IndicatorGroupContext } from "../../../../../../../components/DictionaryAnalysis/Store/IndicatorGroupContext";
import _ from "lodash";
import React, { useContext, useEffect } from "react";
import Error from "../../../../../Shared/Componets/Error/ErrorAPIResult";
import Loader from "../../../../../Shared/Componets/Loaders/Loader";
import { useGetIndicatorProgramSource } from "../../../../../Utils/Hooks/DataSource";
export default function Programs(_ref) {
var _res;
let {
sources
} = _ref;
const engine = useDataEngine();
const {
values,
setValues
} = useContext(IndicatorGroupContext);
const {
loading,
error,
data
} = useGetIndicatorProgramSource(sources, engine);
let res = [];
let allProgram = [];
useEffect(() => {
var _data$attr, _data$prgInd, _data$prgDtEl;
setValues({ ...values,
...{
programDataElements: _.concat(values === null || values === void 0 ? void 0 : values.programDataElements, sources === null || sources === void 0 ? void 0 : sources.prgDtEl)
}
});
res = _.concat([], (_data$attr = data === null || data === void 0 ? void 0 : data.attr) !== null && _data$attr !== void 0 ? _data$attr : [], (_data$prgInd = data === null || data === void 0 ? void 0 : data.prgInd) !== null && _data$prgInd !== void 0 ? _data$prgInd : [], (_data$prgDtEl = data === null || data === void 0 ? void 0 : data.prgDtEl) !== null && _data$prgDtEl !== void 0 ? _data$prgDtEl : []);
allProgram = _.uniqWith(res, _.isEqual);
setValues({ ...values,
...{
programs: _.concat(values === null || values === void 0 ? void 0 : values.programs, allProgram)
}
});
}, [data]);
if (loading) {
return /*#__PURE__*/React.createElement(Loader, {
text: ""
});
}
if (error) {
return /*#__PURE__*/React.createElement(Error, {
error: error
});
}
if (((_res = res) === null || _res === void 0 ? void 0 : _res.length) > 0) {
var _allProgram;
return /*#__PURE__*/React.createElement("div", null, "Programs", /*#__PURE__*/React.createElement("ul", null, (_allProgram = allProgram) === null || _allProgram === void 0 ? void 0 : _allProgram.map((dt, index) => {
return /*#__PURE__*/React.createElement("li", {
key: index
}, /*#__PURE__*/React.createElement("b", null, dt === null || dt === void 0 ? void 0 : dt.displayName), " ", i18n.t("submitting records on every event(case or individual)"), " ");
})));
} else {
return /*#__PURE__*/React.createElement(React.Fragment, null);
}
}