UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

74 lines (69 loc) 2.79 kB
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 };