UNPKG

@talend/react-containers

Version:

Provide connected components aka containers for @talend/react-cmf based on @talend/react-components.

66 lines (65 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.fetch = fetch; exports.hide = hide; exports.show = show; var _reactCmf = _interopRequireDefault(require("@talend/react-cmf")); var _effects = require("redux-saga/effects"); var _AboutDialog = _interopRequireDefault(require("./AboutDialog.connect")); var _AboutDialog2 = _interopRequireDefault(require("./AboutDialog.constant")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * This saga takes care of fetching versions for the AboutDialog * container according to the provided versions URL in the action payload. * @param {Object} action */ function* fetch({ url }) { yield (0, _effects.put)(_AboutDialog.default.setStateAction({ loading: true })); const { response, data } = yield (0, _effects.call)(_reactCmf.default.sagas.http.get, url); if (response.ok) { yield (0, _effects.put)(_reactCmf.default.actions.collections.addOrReplace(_AboutDialog2.default.COLLECTION_ID, { version: data.displayVersion, services: data.services.map(({ serviceName, buildId, versionId }) => ({ name: serviceName, version: versionId, build: buildId })) })); yield (0, _effects.put)(_AboutDialog.default.setStateAction({ loading: false })); } } function* show(action) { yield (0, _effects.all)([(0, _effects.put)(_AboutDialog.default.setStateAction({ show: true })), (0, _effects.call)(fetch, action)]); } function* hide() { yield (0, _effects.put)(_AboutDialog.default.setStateAction({ show: false })); } function* defaultHandler() { yield (0, _effects.takeEvery)(_AboutDialog2.default.ABOUT_DIALOG_SHOW, show); yield (0, _effects.takeEvery)(_AboutDialog2.default.ABOUT_DIALOG_HIDE, hide); yield (0, _effects.take)('DO_NOT_QUIT'); } var _default = exports.default = { 'AboutDialog#default': defaultHandler }; //# sourceMappingURL=AboutDialog.sagas.js.map