@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
JavaScript
"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