UNPKG

@talend/react-cmf

Version:

A framework built on top of best react libraries

45 lines (44 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Saga = void 0; exports.SagaComponent = SagaComponent; var _react = require("react"); var _reactRedux = require("react-redux"); var _propTypes = _interopRequireDefault(require("prop-types")); var _utils = require("@talend/utils"); var _Saga = require("./Saga.saga"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function SagaComponent({ startSaga, stopSaga, saga, sagaAttributes, children = null }) { const id = (0, _react.useMemo)(_utils.randomUUID, []); (0, _react.useEffect)(() => { startSaga(id, saga, sagaAttributes); return () => { stopSaga(id); }; // We don't want to trigger new start and stop, this component is not meant to handle dynamic props // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return children; } SagaComponent.propTypes = { startSaga: _propTypes.default.func.isRequired, stopSaga: _propTypes.default.func.isRequired, saga: _propTypes.default.func.isRequired, sagaAttributes: _propTypes.default.any, children: _propTypes.default.node }; SagaComponent.displayName = 'SagaComponent'; const mapDispatchToProps = dispatch => ({ startSaga: (id, sagaFunction, sagaAttributes) => dispatch(_Saga.actions.startSaga(id, sagaFunction, sagaAttributes)), stopSaga: id => dispatch(_Saga.actions.stopSaga(id)) }); const Saga = exports.Saga = (0, _reactRedux.connect)(null, mapDispatchToProps)(SagaComponent); //# sourceMappingURL=Saga.component.js.map