@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
74 lines (69 loc) • 2.79 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 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) {
var _allDataSets;
let {
aggregate
} = _ref;
const {
values,
setValues
} = useContext(IndicatorGroupContext);
const dt = aggregate === null || aggregate === void 0 ? void 0 : aggregate.map(e => {
return e.split(".")[0];
});
setValues({ ...values,
...{
groupAggregateDataElements: _.concat(values === null || values === void 0 ? void 0 : values.aggregateDataElements, dt)
}
});
const engine = useDataEngine();
const onlyIds = aggregate === null || aggregate === void 0 ? void 0 : aggregate.map(el => {
return el === null || el === void 0 ? void 0 : el.split(".")[0]; //since id may come as with . to indicate with category comb
});
const {
loading,
error,
data
} = useGetDataSet(onlyIds, engine);
let allDataSets = [];
useEffect(() => {
var _data$dataSets;
data === null || data === void 0 ? void 0 : (_data$dataSets = data.dataSets) === null || _data$dataSets === void 0 ? void 0 : _data$dataSets.map(e => {
e.map(el => {
allDataSets.push(el);
});
});
allDataSets = _.uniqWith(allDataSets, _.isEqual);
setValues({ ...values,
...{
groupDataSets: _.concat(values === null || values === void 0 ? void 0 : values.dataSets, allDataSets)
}
});
}, [data]);
if (loading) {
return /*#__PURE__*/React.createElement(Loader, {
text: ""
});
}
if (error) {
return /*#__PURE__*/React.createElement(Error, {
error: error
});
}
return /*#__PURE__*/React.createElement("div", null, i18n.t("Datasets"), /*#__PURE__*/React.createElement("ul", null, (_allDataSets = allDataSets) === null || _allDataSets === void 0 ? void 0 : _allDataSets.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
};