UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

103 lines (97 loc) 4.46 kB
import { useDataQuery } from "@dhis2/app-runtime"; import i18n from "@dhis2/d2-i18n"; import { TableHead, TableBody, DataTable, DataTableRow, DataTableCell, DataTableColumnHeader } from "@dhis2/ui"; import React, { useEffect } from "react"; import DisplayFormula from "../DisplayFormula/Index"; import Error from "../Error/ErrorAPIResult"; import Loader from "../Loaders/Loader"; const query = { relatedInd: { resource: "indicators", params: _ref => { let { id } = _ref; return { fields: ["id", "displayName", "indicatorType[id,displayName]", "displayDescription", "numerator", "denominator"], filter: ["numerator:like:".concat(id), "denominator:like:".concat(id)], rootJunction: "OR" }; } } }; export default function RelatedIndicatorTable(props) { var _data$relatedInd; const id = props.id; const resourceType = props.resourceType; const { loading, error, data, refetch } = useDataQuery(query, { variables: { id } }); const result = data === null || data === void 0 ? void 0 : (_data$relatedInd = data.relatedInd) === null || _data$relatedInd === void 0 ? void 0 : _data$relatedInd.indicators; useEffect(() => { refetch({ id }); }, [id]); if ((result === null || result === void 0 ? void 0 : result.length) === 0) { return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("p", null, i18n.t("This {{variables1}} is not related to any indicator", { variables1: resourceType }), " ")); } 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("p", null, " ", i18n.t("Below are set of indicators using this {{variables}} as numerator or denominator in their calculations.", { variables: resourceType })), /*#__PURE__*/React.createElement(DataTable, null, /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableColumnHeader, null, i18n.t("Name")), /*#__PURE__*/React.createElement(DataTableColumnHeader, null, i18n.t("Numerator")), /*#__PURE__*/React.createElement(DataTableColumnHeader, null, i18n.t("Denominator")), /*#__PURE__*/React.createElement(DataTableColumnHeader, null, i18n.t("Type")), /*#__PURE__*/React.createElement(DataTableColumnHeader, null, i18n.t("Description")))), /*#__PURE__*/React.createElement(TableBody, null, result === null || result === void 0 ? void 0 : result.map((result, index) => { var _result$indicatorType, _result$displayDescri; return /*#__PURE__*/React.createElement(DataTableRow, { key: result === null || result === void 0 ? void 0 : result.id }, /*#__PURE__*/React.createElement(DataTableCell, { bordered: true }, result === null || result === void 0 ? void 0 : result.displayName), /*#__PURE__*/React.createElement(DataTableCell, { bordered: true }, /*#__PURE__*/React.createElement("div", { style: { margin: 5 } }, /*#__PURE__*/React.createElement(DisplayFormula, { formula: result === null || result === void 0 ? void 0 : result.numerator, location: "numerator", storeResult: true }))), /*#__PURE__*/React.createElement(DataTableCell, { bordered: true, b: true }, /*#__PURE__*/React.createElement("div", { style: { margin: 5 } }, /*#__PURE__*/React.createElement(DisplayFormula, { formula: result === null || result === void 0 ? void 0 : result.denominator, location: "denominator", storeResult: true }))), /*#__PURE__*/React.createElement(DataTableCell, { bordered: true }, result === null || result === void 0 ? void 0 : (_result$indicatorType = result.indicatorType) === null || _result$indicatorType === void 0 ? void 0 : _result$indicatorType.displayName), /*#__PURE__*/React.createElement(DataTableCell, { bordered: true }, /*#__PURE__*/React.createElement("div", { style: { margin: 5 } }, (_result$displayDescri = result === null || result === void 0 ? void 0 : result.displayDescription) !== null && _result$displayDescri !== void 0 ? _result$displayDescri : i18n.t("No description given")))); })))); }