@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
66 lines (62 loc) • 2.66 kB
JavaScript
import { useDataEngine } from "@dhis2/app-runtime";
import i18n from "@dhis2/d2-i18n";
import CountContext from "../../../../../../../components/DictionaryAnalysis/Store/CountContext";
import PropTypes from "prop-types";
import React, { useContext, useEffect } from "react";
import Error from "../../../../../Shared/Componets/Error/ErrorAPIResult";
import Loader from "../../../../../Shared/Componets/Loaders/Loader";
import { useGetDataSet } from "../../../../../Utils/Hooks";
export default function DataSets(_ref) {
let {
aggregate
} = _ref;
const {
values,
setValues
} = useContext(CountContext);
const engine = useDataEngine();
const onlyIds = aggregate === null || aggregate === void 0 ? void 0 : aggregate.map(el => {
return el === null || el === void 0 ? void 0 : el.id;
});
const {
loading,
error,
data
} = useGetDataSet(onlyIds, engine);
const res = data === null || data === void 0 ? void 0 : data.dataSets;
useEffect(() => {
let totalCount = 0;
res === null || res === void 0 ? void 0 : res.map(e => {
totalCount += e === null || e === void 0 ? void 0 : e.length;
});
setValues({ ...values,
...{
dataSetCount: totalCount
}
});
return () => {};
}, [data]);
if (loading) {
return /*#__PURE__*/React.createElement(Loader, {
text: ""
});
}
if (error) {
return /*#__PURE__*/React.createElement(Error, {
error: error
});
}
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("ul", null, aggregate === null || aggregate === void 0 ? void 0 : aggregate.map((el, index) => {
var _res$index, _res$index2;
return /*#__PURE__*/React.createElement("li", {
key: (el === null || el === void 0 ? void 0 : el.id) + index
}, el === null || el === void 0 ? void 0 : el.displayName, /*#__PURE__*/React.createElement("ul", null, " ", ((_res$index = res[index]) === null || _res$index === void 0 ? void 0 : _res$index.length) > 1 ? i18n.t("sources") : "", (_res$index2 = res[index]) === null || _res$index2 === void 0 ? void 0 : _res$index2.map(datset => {
return /*#__PURE__*/React.createElement("li", {
key: datset === null || datset === void 0 ? void 0 : datset.id
}, datset === null || datset === void 0 ? void 0 : datset.displayName, " ", i18n.t(" submitting "), " ", datset === null || datset === void 0 ? void 0 : datset.periodType, " ", i18n.t(" after every "), " ", datset === null || datset === void 0 ? void 0 : datset.timelyDays, " ", i18n.t("days"), " ");
})));
})));
}
DataSets.propTypes = {
aggregate: PropTypes.array.isRequired
};