@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
65 lines (53 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.ConnectedError = exports.connectError = void 0;
var _immutable = require("connected-react-router/immutable");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactRedux = require("react-redux");
var _clearError = _interopRequireDefault(require("../../actions/error/clearError"));
var _clearErrorTimeoutHandler = _interopRequireDefault(require("../../actions/error/clearErrorTimeoutHandler"));
var _setErrorTimeoutHandler = _interopRequireDefault(require("../../actions/error/setErrorTimeoutHandler"));
var _error = require("../../components/error");
var _selectors = _interopRequireDefault(require("../../data/selectors"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var connectError = (0, _reactRedux.connect)(function (state, ownProps) {
return {
location: _selectors["default"].getLocation(state),
hasError: ownProps.hasError || _selectors["default"].hasError(state),
error: ownProps.error || _selectors["default"].getError(state),
errorCode: ownProps.errorCode || _selectors["default"].getErrorCode(state),
errorMessage: ownProps.errorMessage || _selectors["default"].getErrorMessage(state),
errorTimeoutHandlerId: _selectors["default"].getErrorTimeoutHandlerId(state)
};
}, function (dispatch, ownProps) {
return {
timedRedirect: function timedRedirect() {
return new Promise(function (resolve) {
var timeoutId = setTimeout(function () {
if (window.location && window.location.pathname !== ownProps.redirectionLocation) {
dispatch((0, _clearError["default"])());
dispatch((0, _immutable.push)(ownProps.redirectionLocation));
}
resolve();
}, ownProps.redirectionTimeout * 1000);
dispatch((0, _setErrorTimeoutHandler["default"])(timeoutId));
});
},
clearErrorTimeoutHandler: _clearErrorTimeoutHandler["default"]
};
});
exports.connectError = connectError;
var ConnectedError = connectError(_error.ErrorComponent);
exports.ConnectedError = ConnectedError;
ConnectedError.propTypes = {
redirectionLocation: _propTypes["default"].string.isRequired,
redirectionTimeout: _propTypes["default"].number
};
ConnectedError.defaultProps = {
redirectionLocation: "/",
redirectionTimeout: 10
};
var _default = ConnectedError;
exports["default"] = _default;