Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
'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);
}