UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

94 lines (84 loc) 3.12 kB
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)); }