UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

68 lines (64 loc) 1.93 kB
import { useDataQuery } from "@dhis2/app-runtime"; 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 { dataElementDomainTypes } from "../../../../Utils/Models"; import DataSets from "./Components/DataSets"; import OtherDetailTable from "./Components/OtherDetails"; import Programs from "./Components/Programs"; const query = { sources: { resource: "dataElements", id: _ref => { let { id } = _ref; return id; }, params: { fields: ["domainType", "style", "optionSetValue", "commentOptionSet[displayName]", "legendSets[id,displayName]", "aggregationLevels"] } } }; export default function DataSource(_ref2) { var _data$sources; let { id } = _ref2; const { loading, error, data, refetch } = useDataQuery(query, { variables: { id } }); useEffect(() => { refetch({ id }); }, [id]); if (loading) { return /*#__PURE__*/React.createElement(Loader, { text: "" }); } if (error) { return /*#__PURE__*/React.createElement(Error, { error: error }); } return /*#__PURE__*/React.createElement(React.Fragment, null, (data === null || data === void 0 ? void 0 : (_data$sources = data.sources) === null || _data$sources === void 0 ? void 0 : _data$sources.domainType) === dataElementDomainTypes.AGGREGATE && data !== dataElementDomainTypes.UNDEFINED ? /*#__PURE__*/React.createElement(DataSets, { id: id }) : /*#__PURE__*/React.createElement(Programs, { id: id }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(OtherDetailTable, { other: data === null || data === void 0 ? void 0 : data.sources }))); } DataSource.PropTypes = { id: PropTypes.string.isRequired };