@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
94 lines (84 loc) • 3.12 kB
JavaScript
import React from "react";
import { useDataQuery } from "@dhis2/app-runtime";
import { DataTableRow, DataTableCell, CircularLoader } from "@dhis2/ui";
const query = {
dataElementInIndicator: {
resource: "dataElements",
id: _ref => {
let {
id
} = _ref;
return id;
},
params: {
fields: ["id", "aggregationType", "valueType", "zeroIsSignificant", "dataSetElements[dataSet[id,displayName]]", "dataElementGroups[id,displayName]", "categoryCombo[categories[id,displayName]]"]
}
}
};
export default function Row(props) {
const datElement = props.datEl;
function isPureDataElement(str) {
if ((str === null || str === void 0 ? void 0 : str.indexOf(".")) == -1) {
//didnt find
return true;
} else {
return false;
}
}
function getData(id) {
const {
loading,
error,
data
} = useDataQuery(query, {
variables: {
id
}
});
if (loading) {
return /*#__PURE__*/React.createElement(CircularLoader, null);
}
if (error) {
return /*#__PURE__*/React.createElement("p", null, " ", error.message, " ");
}
return data;
}
function theRow(datEle) {
let data;
if (isPureDataElement(datEle.id)) {
var _getData;
data = (_getData = getData(datEle.id)) === null || _getData === void 0 ? void 0 : _getData.dataElementInIndicator;
} else {
const arr = datEle.id.split(".");
data = getData(arr[0]).dataElementInIndicator;
}
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, typeof data !== "undefined" ? data.valueType : "some value"), /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, typeof data !== "undefined" ? JSON.stringify(data.zeroIsSignificant) : null), /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, /*#__PURE__*/React.createElement("ol", null, typeof data !== "undefined" ? data.categoryCombo.categories.map(cat => {
return /*#__PURE__*/React.createElement("li", {
key: cat.id
}, cat.displayName);
}) : null)), /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, /*#__PURE__*/React.createElement("ol", null, typeof data !== "undefined" ? data.dataSetElements.map(dataSet => {
return /*#__PURE__*/React.createElement("li", {
key: dataSet.dataSet.id
}, dataSet.dataSet.displayName);
}) : null)), /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, /*#__PURE__*/React.createElement("ol", null, typeof data !== "undefined" ? data.dataElementGroups.map(group => {
return /*#__PURE__*/React.createElement("li", {
key: group.id
}, group.displayName);
}) : null)));
}
return /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, datElement.val), /*#__PURE__*/React.createElement(DataTableCell, {
bordered: true
}, datElement.location), theRow(datElement));
}