mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
add IRouter interface
This commit is contained in:
@@ -3,7 +3,7 @@ import { Widget } from "../core/widget";
|
||||
import { Env } from "../env";
|
||||
import { CRM } from "../widgets/crm";
|
||||
import { Discuss } from "../widgets/discuss";
|
||||
import { Query, Router } from "./router";
|
||||
import { Query, IRouter } from "./router";
|
||||
|
||||
interface Type<T> extends Function {
|
||||
new (...args: any[]): T;
|
||||
@@ -33,10 +33,10 @@ const actions: any[] = [
|
||||
];
|
||||
|
||||
export class ActionManager extends EventBus {
|
||||
router: Router;
|
||||
router: IRouter;
|
||||
currentAction: ActionWidget | null = null;
|
||||
|
||||
constructor(router: Router) {
|
||||
constructor(router: IRouter) {
|
||||
super();
|
||||
this.router = router;
|
||||
const query = this.router.getQuery();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { EventBus } from "../core/event_bus";
|
||||
import { EventBus, Callback } from "../core/event_bus";
|
||||
|
||||
export type Query = { [key: string]: string };
|
||||
|
||||
@@ -6,7 +6,16 @@ function clearSlashes(s: string): string {
|
||||
return s.replace(/\/$/, "").replace(/^\//, "");
|
||||
}
|
||||
|
||||
export class Router extends EventBus {
|
||||
type RouterEvent = "query_changed";
|
||||
|
||||
export interface IRouter {
|
||||
navigate(query: Query);
|
||||
on(event: RouterEvent, owner: any, callback: Callback);
|
||||
getQuery(): Query;
|
||||
formatURL(path: string, query: Query): string;
|
||||
}
|
||||
|
||||
export class Router extends EventBus implements IRouter {
|
||||
currentQuery: Query;
|
||||
|
||||
constructor() {
|
||||
|
||||
Reference in New Issue
Block a user