@uirouter/core
Version:
UI-Router Core: Framework agnostic, State-based routing for JavaScript Single Page Apps
36 lines • 1.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerUpdateGlobalState = void 0;
var common_1 = require("../common/common");
/**
* A [[TransitionHookFn]] which updates global UI-Router state
*
* Registered using `transitionService.onBefore({}, updateGlobalState);`
*
* Before a [[Transition]] starts, updates the global value of "the current transition" ([[Globals.transition]]).
* After a successful [[Transition]], updates the global values of "the current state"
* ([[Globals.current]] and [[Globals.$current]]) and "the current param values" ([[Globals.params]]).
*
* See also the deprecated properties:
* [[StateService.transition]], [[StateService.current]], [[StateService.params]]
*/
var updateGlobalState = function (trans) {
var globals = trans.router.globals;
var transitionSuccessful = function () {
globals.successfulTransitions.enqueue(trans);
globals.$current = trans.$to();
globals.current = globals.$current.self;
common_1.copy(trans.params(), globals.params);
};
var clearCurrentTransition = function () {
// Do not clear globals.transition if a different transition has started in the meantime
if (globals.transition === trans)
globals.transition = null;
};
trans.onSuccess({}, transitionSuccessful, { priority: 10000 });
trans.promise.then(clearCurrentTransition, clearCurrentTransition);
};
exports.registerUpdateGlobalState = function (transitionService) {
return transitionService.onCreate({}, updateGlobalState);
};
//# sourceMappingURL=updateGlobals.js.map