Repository URL to install this package:
|
Version:
1.3.0 ▾
|
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
exports.onRedirectTo = onRedirectTo;
exports.default = watchRedirect;
var _effects = require('redux-saga/effects');
var _actions = require('../actions');
var _navigateHelper = require('../../helpers/navigateHelper');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _marked = /*#__PURE__*/_regenerator2.default.mark(watchRedirect);
var CONTINUE_TO_URL_QUERY_PARAMETER_KEY = 'redirectUrl';
var PATH = {
LOGIN: '/login',
SIGNUP: '/signup'
};
/**
* Redirects the user to a different page, including the current path as redirect URL.
* @param {string} path The path to navigate to.
*/
function onRedirectTo(path) {
var pathname = (0, _navigateHelper.getLocationPathname)();
var searchParams = (0, _navigateHelper.getLocationSearch)();
var continueURL = encodeURIComponent(searchParams.length > 0 ? pathname + '?' + searchParams : pathname);
(0, _navigateHelper.navigateTo)('' + path + (continueURL ? '?' + CONTINUE_TO_URL_QUERY_PARAMETER_KEY + '=' + continueURL : ''));
}
function watchRedirect() {
return _regenerator2.default.wrap(function watchRedirect$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0, _effects.all)([(0, _effects.takeLatest)(_actions.ActionTypes.REDIRECT_TO_LOGIN, onRedirectTo, PATH.LOGIN), (0, _effects.takeLatest)(_actions.ActionTypes.REDIRECT_TO_SIGNUP, onRedirectTo, PATH.SIGNUP)]);
case 2:
return _context.abrupt('return', _context.sent);
case 3:
case 'end':
return _context.stop();
}
}
}, _marked, this);
}