diff --git a/packages/noodl-runtime/src/nodecontext.js b/packages/noodl-runtime/src/nodecontext.js index 32e26dc..9060e9a 100644 --- a/packages/noodl-runtime/src/nodecontext.js +++ b/packages/noodl-runtime/src/nodecontext.js @@ -230,7 +230,7 @@ NodeContext.prototype.deregisterComponentModel = function (componentModel) { NodeContext.prototype.fetchComponentBundle = async function (name) { const fetchBundle = async (name) => { - let baseUrl = Noodl.Env["BaseUrl"] || '/'; + let baseUrl = Noodl.Env['BaseUrl'] || '/'; let bundleUrl = `${baseUrl}noodl_bundles/${name}.json`; const response = await fetch(bundleUrl); @@ -455,6 +455,15 @@ NodeContext.prototype.setPopupCallbacks = function ({ onShow, onClose }) { this.onClosePopup = onClose; }; +/** + * @param {string} popupComponent + * @param {Record} params + * @param {{ + * senderNode?: unknown; + * onClosePopup?: (action?: string, results: object) => void; + * }} args + * @returns + */ NodeContext.prototype.showPopup = async function (popupComponent, params, args) { if (!this.onShowPopup) return; diff --git a/packages/noodl-viewer-react/src/api/navigation.js b/packages/noodl-viewer-react/src/api/navigation.js index 7612aee..0646304 100644 --- a/packages/noodl-viewer-react/src/api/navigation.js +++ b/packages/noodl-viewer-react/src/api/navigation.js @@ -2,12 +2,18 @@ const { RouterHandler } = require('../nodes/navigation/router-handler'); const NoodlRuntime = require('@noodl/runtime'); const navigation = { + /** + * This is set by "packages/noodl-viewer-react/src/noodl-js-api.js" + * @type {NoodlRuntime} + */ + _noodlRuntime: undefined, + async showPopup(componentPath, params) { return new Promise((resolve) => { navigation._noodlRuntime.context.showPopup(componentPath, params, { onClosePopup: (action, results) => { resolve({ - action: action.replace('closeAction-', ''), + action: action?.replace('closeAction-', ''), parameters: results }); }