diff --git a/react-router/react-router-test.ts b/react-router/react-router-test.ts index fa335e934..85180cf9e 100644 --- a/react-router/react-router-test.ts +++ b/react-router/react-router-test.ts @@ -328,3 +328,63 @@ class TransitionTest { }; } } + + +// Context +class ContextTest { + v: Router.Context + + makePath() { + var v1: string = this.v.makePath('home'); + var v2: string = this.v.makePath('home', {p1: 1}); + var v3: string = this.v.makePath('home', {p1: 1}, {q1: 1}); + } + + makeHref() { + var v1: string = this.v.makeHref('home'); + var v2: string = this.v.makeHref('home', {p1: 1}); + var v3: string = this.v.makeHref('home', {p1: 1}, {q1: 1}); + } + + transitionTo() { + var v1: void = this.v.transitionTo('home'); + var v2: void = this.v.transitionTo('home', {p1: 1}); + var v3: void = this.v.transitionTo('home', {p1: 1}, {q1: 1}); + } + + replaceWith() { + var v1: void = this.v.replaceWith('home'); + var v2: void = this.v.replaceWith('home', {p1: 1}); + var v3: void = this.v.replaceWith('home', {p1: 1}, {q1: 1}); + } + + goBack() { + var v: void = this.v.goBack(); + } + + getCurrentPath() { + var v: string = this.v.getCurrentPath(); + } + + getCurrentRoutes() { + var v: Router.Route[] = this.v.getCurrentRoutes(); + } + + getCurrentPathname() { + var v: string = this.v.getCurrentPathname(); + } + + getCurrentParams() { + var v: {} = this.v.getCurrentParams(); + } + + getCurrentQuery() { + var v: {} = this.v.getCurrentQuery(); + } + + isActive() { + var v1: boolean = this.v.isActive('home'); + var v2: boolean = this.v.isActive('home', {p1: 1}); + var v3: boolean = this.v.isActive('home', {p1: 1}, {q1: 1}); + } +} diff --git a/react-router/react-router.d.ts b/react-router/react-router.d.ts index c02892ffe..6a005d967 100644 --- a/react-router/react-router.d.ts +++ b/react-router/react-router.d.ts @@ -140,7 +140,7 @@ declare module "react-router" { getRouteDepth(): number; createChildRouteHandler(props: {}): RouteHandler; } - interface RouteHandlerClass extends React.ReactElement {} + interface RouteHandlerClass extends React.ComponentClass {} var Link: LinkClass; var RouteHandler: RouteHandlerClass; @@ -253,45 +253,23 @@ declare module "react-router" { length: number; } var History: History; -} -declare module "react" { - import ReactRouter = require("react-router"); - - // for DefaultRoute - function createElement( - type: ReactRouter.DefaultRouteClass, - props: ReactRouter.DefaultRouteProp, - ...children: ReactNode[]): ReactRouter.DefaultRoute; - - // for Link - function createElement( - type: ReactRouter.LinkClass, - props: ReactRouter.LinkProp, - ...children: ReactNode[]): ReactRouter.Link; - - // for NotFoundRoute - function createElement( - type: ReactRouter.NotFoundRouteClass, - props: ReactRouter.NotFoundRouteProp, - ...children: ReactNode[]): ReactRouter.NotFoundRoute; - - // for Redirect - function createElement( - type: ReactRouter.RedirectClass, - props: ReactRouter.RedirectProp, - ...children: ReactNode[]): ReactRouter.Redirect; - - // for Route - function createElement( - type: ReactRouter.RouteClass, - props: ReactRouter.RouteProp, - ...children: ReactNode[]): ReactRouter.Route; - - // for RouteHandler - function createElement( - type: ReactRouter.RouteHandlerClass, - props: ReactRouter.RouteHandlerProp, - ...children: ReactNode[]): ReactRouter.RouteHandler; + // + // Context + // ---------------------------------------------------------------------- + interface Context { + makePath(to: string, params?: {}, query?: {}): string; + makeHref(to: string, params?: {}, query?: {}): string; + transitionTo(to: string, params?: {}, query?: {}): void; + replaceWith(to: string, params?: {}, query?: {}): void; + goBack(): void; + + getCurrentPath(): string; + getCurrentRoutes(): Route[]; + getCurrentPathname(): string; + getCurrentParams(): {}; + getCurrentQuery(): {}; + isActive(to: string, params?: {}, query?: {}): boolean; + } }