@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
66 lines (49 loc) • 2.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = IndicatorCount;
var _appRuntime = require("@dhis2/app-runtime");
var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
var _lodash = require("lodash");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _Hooks = require("../../../Utils/Hooks");
var _ErrorAPIResult = _interopRequireDefault(require("../Error/ErrorAPIResult"));
var _Loader = _interopRequireDefault(require("../Loaders/Loader"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function IndicatorCount(_ref) {
var _data$matches;
let {
dataElementsArray
} = _ref;
const engine = (0, _appRuntime.useDataEngine)();
const onlyIds = dataElementsArray === null || dataElementsArray === void 0 ? void 0 : dataElementsArray.map(e => {
return e === null || e === void 0 ? void 0 : e.id;
});
const {
loading,
error,
data
} = (0, _Hooks.useGetNumDenMatch)(onlyIds, engine);
const count = (0, _lodash.reduce)((_data$matches = data === null || data === void 0 ? void 0 : data.matches) !== null && _data$matches !== void 0 ? _data$matches : [], function (prev, curr) {
var _ref2, _ref3, _curr$numeratorMatch, _curr$numeratorMatch$, _curr$denominatorMatc, _curr$denominatorMatc2;
return (_ref2 = (_ref3 = prev + (curr === null || curr === void 0 ? void 0 : (_curr$numeratorMatch = curr.numeratorMatch) === null || _curr$numeratorMatch === void 0 ? void 0 : (_curr$numeratorMatch$ = _curr$numeratorMatch.indicators) === null || _curr$numeratorMatch$ === void 0 ? void 0 : _curr$numeratorMatch$.length)) !== null && _ref3 !== void 0 ? _ref3 : 0 + (curr === null || curr === void 0 ? void 0 : (_curr$denominatorMatc = curr.denominatorMatch) === null || _curr$denominatorMatc === void 0 ? void 0 : (_curr$denominatorMatc2 = _curr$denominatorMatc.indicators) === null || _curr$denominatorMatc2 === void 0 ? void 0 : _curr$denominatorMatc2.length)) !== null && _ref2 !== void 0 ? _ref2 : 0;
}, 0);
if (loading) {
return /*#__PURE__*/_react.default.createElement(_Loader.default, {
text: ""
});
}
if (error) {
return /*#__PURE__*/_react.default.createElement(_ErrorAPIResult.default, {
error: error
});
}
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _d2I18n.default.t("It\u2019s data elements belongs to {{variables}} indicators using it as numerator/denominator", {
variables: count
}));
}
IndicatorCount.propTypes = {
dataElementsArray: _propTypes.default.array.isRequired
};