@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
108 lines (92 loc) • 3.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Row;
var _react = _interopRequireDefault(require("react"));
var _appRuntime = require("@dhis2/app-runtime");
var _ui = require("@dhis2/ui");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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]]"]
}
}
};
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
} = (0, _appRuntime.useDataQuery)(query, {
variables: {
id
}
});
if (loading) {
return /*#__PURE__*/_react.default.createElement(_ui.CircularLoader, null);
}
if (error) {
return /*#__PURE__*/_react.default.createElement("p", null, " ", error.message, " ");
}
return data;
}
function theRow(datEle) {
let data;
if (isPureDataElement(datEle.id)) {
data = getData(datEle.id).dataElementInIndicator;
} else {
const arr = datEle.id.split(".");
data = getData(arr[0]).dataElementInIndicator;
}
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, typeof data !== "undefined" ? data.valueType : "some value"), /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, typeof data !== "undefined" ? JSON.stringify(data.zeroIsSignificant) : null), /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, /*#__PURE__*/_react.default.createElement("ol", null, typeof data !== "undefined" ? data.categoryCombo.categories.map(cat => {
return /*#__PURE__*/_react.default.createElement("li", {
key: cat.id
}, cat.displayName);
}) : null)), /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, /*#__PURE__*/_react.default.createElement("ol", null, typeof data !== "undefined" ? data.dataSetElements.map(dataSet => {
return /*#__PURE__*/_react.default.createElement("li", {
key: dataSet.dataSet.id
}, dataSet.dataSet.displayName);
}) : null)), /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, /*#__PURE__*/_react.default.createElement("ol", null, typeof data !== "undefined" ? data.dataElementGroups.map(group => {
return /*#__PURE__*/_react.default.createElement("li", {
key: group.id
}, group.displayName);
}) : null)));
}
return /*#__PURE__*/_react.default.createElement(_ui.DataTableRow, null, /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, datElement.val), /*#__PURE__*/_react.default.createElement(_ui.DataTableCell, {
bordered: true
}, datElement.location), theRow(datElement));
} // RowAggregate.prototype={
// datEl:PropTypes.
//
// }