@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
74 lines (71 loc) • 2.58 kB
JavaScript
import { useDataQuery } from "@dhis2/app-runtime";
import i18n from "@dhis2/d2-i18n";
import { DataTable, DataTableCell, DataTableColumnHeader, DataTableRow, TableBody, TableHead } from "@dhis2/ui";
import PropTypes from "prop-types";
import React, { useEffect } from "react";
import Error from "../../../../Shared/Componets/Error/ErrorAPIResult";
import Loader from "../../../../Shared/Componets/Loaders/Loader";
import CalculationDetailRow from "./Components/Row";
const query = {
calculation: {
resource: "indicators",
id: _ref => {
let {
id
} = _ref;
return id;
},
params: {
fields: ["numerator", "denominator"]
}
}
};
export default function CalculationDetails(_ref2) {
let {
id
} = _ref2;
const {
loading,
error,
data,
refetch
} = useDataQuery(query, {
variables: {
id
}
});
useEffect(() => {
refetch({
id
});
}, [id]);
if (loading) {
return /*#__PURE__*/React.createElement(Loader, null);
}
if (error) {
return /*#__PURE__*/React.createElement(Error, {
error: error
});
}
const numDen = data.calculation;
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h3", null, " ", i18n.t("Calculation details")), /*#__PURE__*/React.createElement("p", null, " ", i18n.t("Below are expression computing numerator and denominator, and related sources"), " "), /*#__PURE__*/React.createElement(DataTable, null, /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableColumnHeader, {
bordered: true
}, i18n.t("Expression")), /*#__PURE__*/React.createElement(DataTableColumnHeader, {
bordered: true
}, i18n.t("Formula")), /*#__PURE__*/React.createElement(DataTableColumnHeader, {
bordered: true
}, i18n.t("Sources")))), /*#__PURE__*/React.createElement(TableBody, null, /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, i18n.t("Numerator")), /*#__PURE__*/React.createElement(CalculationDetailRow, {
formula: numDen.numerator,
location: "numerator"
})), /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, i18n.t("Denominator")), /*#__PURE__*/React.createElement(CalculationDetailRow, {
formula: numDen.denominator,
location: "denominator"
})))));
}
CalculationDetails.propTypes = {
id: PropTypes.string.isRequired
};