refactor(router): rename candidate into snapshot
This commit is contained in:
@ -1,18 +1,18 @@
|
||||
import { RouterStateCandidate, ActivatedRouteCandidate, RouterState, ActivatedRoute } from './router_state';
|
||||
import { RouterStateSnapshot, ActivatedRouteSnapshot, RouterState, ActivatedRoute } from './router_state';
|
||||
import { TreeNode } from './utils/tree';
|
||||
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
|
||||
|
||||
export function createRouterState(curr: RouterStateCandidate, prevState: RouterState): RouterState {
|
||||
export function createRouterState(curr: RouterStateSnapshot, prevState: RouterState): RouterState {
|
||||
const root = createNode(curr._root, prevState ? prevState._root : null);
|
||||
const queryParams = prevState ? prevState.queryParams : new BehaviorSubject(curr.queryParams);
|
||||
const fragment = prevState ? prevState.fragment : new BehaviorSubject(curr.fragment);
|
||||
return new RouterState(root, queryParams, fragment, curr);
|
||||
}
|
||||
|
||||
function createNode(curr:TreeNode<ActivatedRouteCandidate>, prevState?:TreeNode<ActivatedRoute>):TreeNode<ActivatedRoute> {
|
||||
if (prevState && equalRouteCandidates(prevState.value.candidate, curr.value)) {
|
||||
function createNode(curr:TreeNode<ActivatedRouteSnapshot>, prevState?:TreeNode<ActivatedRoute>):TreeNode<ActivatedRoute> {
|
||||
if (prevState && equalRouteSnapshots(prevState.value.snapshot, curr.value)) {
|
||||
const value = prevState.value;
|
||||
value.candidate = curr.value;
|
||||
value.snapshot = curr.value;
|
||||
|
||||
const children = createOrReuseChildren(curr, prevState);
|
||||
return new TreeNode<ActivatedRoute>(value, children);
|
||||
@ -24,9 +24,9 @@ function createNode(curr:TreeNode<ActivatedRouteCandidate>, prevState?:TreeNode<
|
||||
}
|
||||
}
|
||||
|
||||
function createOrReuseChildren(curr:TreeNode<ActivatedRouteCandidate>, prevState:TreeNode<ActivatedRoute>) {
|
||||
function createOrReuseChildren(curr:TreeNode<ActivatedRouteSnapshot>, prevState:TreeNode<ActivatedRoute>) {
|
||||
return curr.children.map(child => {
|
||||
const index = prevState.children.findIndex(p => equalRouteCandidates(p.value.candidate, child.value));
|
||||
const index = prevState.children.findIndex(p => equalRouteSnapshots(p.value.snapshot, child.value));
|
||||
if (index >= 0) {
|
||||
return createNode(child, prevState.children[index]);
|
||||
} else {
|
||||
@ -35,10 +35,10 @@ function createOrReuseChildren(curr:TreeNode<ActivatedRouteCandidate>, prevState
|
||||
});
|
||||
}
|
||||
|
||||
function createActivatedRoute(c:ActivatedRouteCandidate) {
|
||||
function createActivatedRoute(c:ActivatedRouteSnapshot) {
|
||||
return new ActivatedRoute(new BehaviorSubject(c.urlSegments), new BehaviorSubject(c.params), c.outlet, c.component, c);
|
||||
}
|
||||
|
||||
function equalRouteCandidates(a: ActivatedRouteCandidate, b: ActivatedRouteCandidate): boolean {
|
||||
function equalRouteSnapshots(a: ActivatedRouteSnapshot, b: ActivatedRouteSnapshot): boolean {
|
||||
return a._routeConfig === b._routeConfig;
|
||||
}
|
Reference in New Issue
Block a user