UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

80 lines (59 loc) 3.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DisplayFormula; var _react = _interopRequireWildcard(require("react")); var _appRuntime = require("@dhis2/app-runtime"); var _DictionaryContext = _interopRequireDefault(require("../../../../../components/DictionaryAnalysis/Store/DictionaryContext")); var _propTypes = _interopRequireDefault(require("prop-types")); var _FormulaFunctions = require("../../../Utils/Functions/FormulaFunctions"); var _Hooks = require("../../../Utils/Hooks"); var _Models = require("../../../Utils/Models"); var _ErrorAPIResult = _interopRequireDefault(require("../Error/ErrorAPIResult")); var _Loader = _interopRequireDefault(require("../Loaders/Loader")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function DisplayFormula(props) { //props const formula = props.formula; const loc = props.location; //either its in numerator or denominator const storeResult = props.storeResult; const { values, setValues } = (0, _react.useContext)(_DictionaryContext.default); //hooks const engine = (0, _appRuntime.useDataEngine)(); const { loading, error, data } = (0, _Hooks.useGetData)(formula, engine, loc); (0, _react.useEffect)(() => { if (storeResult && typeof (data === null || data === void 0 ? void 0 : data.dataElements) != _Models.dataTypes.UNDEFINED) { var _values$dataElements; setValues({ ...values, ...{ dataElements: values === null || values === void 0 ? void 0 : (_values$dataElements = values.dataElements) === null || _values$dataElements === void 0 ? void 0 : _values$dataElements.concat(data === null || data === void 0 ? void 0 : data.dataElements) } }); } }, [data]); if (loading) { return /*#__PURE__*/_react.default.createElement(_Loader.default, { text: "" }); } if (error) { return /*#__PURE__*/_react.default.createElement(_ErrorAPIResult.default, { error: error }); } return /*#__PURE__*/_react.default.createElement("div", null, (0, _FormulaFunctions.getFinalWordFormula)(formula, data === null || data === void 0 ? void 0 : data.dataElements, data === null || data === void 0 ? void 0 : data.programIndicators, data === null || data === void 0 ? void 0 : data.dataSetReportingRates, data === null || data === void 0 ? void 0 : data.attributes, data === null || data === void 0 ? void 0 : data.constants, null, null)); } DisplayFormula.PropTypes = { formula: _propTypes.default.string.isRequired, location: _propTypes.default.string, storeResult: _propTypes.default.bool };