-
Notifications
You must be signed in to change notification settings - Fork 129
/
core.ts
27 lines (25 loc) · 1.08 KB
/
core.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import {UIRouter, PathNode, services} from 'ui-router-core';
import {ReactViewDeclaration, ReactStateDeclaration} from "./interface"
import {ReactViewConfig, reactViewsBuilder} from "./reactViews";
import {HistoryImplementation} from "./history/interface";
import {hashHistory} from './history/hashHistory';
// Set up view config factory
let viewConfigFactory = (node: [PathNode], config: ReactViewDeclaration) =>
new ReactViewConfig(node, config);
export default class UIRouterReact extends UIRouter {
static instance;
constructor(history: HistoryImplementation = hashHistory) {
super();
this.viewService.viewConfigFactory('react', viewConfigFactory);
this.stateRegistry.decorator("views", reactViewsBuilder);
UIRouterReact.instance = this;
// Patch location service & config with history implementation
Object.assign(services.location, history.service);
Object.assign(services.locationConfig, history.configuration);
}
start(): void {
this.stateRegistry.stateQueue.autoFlush(this.stateService);
this.urlRouter.listen();
this.urlRouter.sync();
}
}