@react-motion-router/core
Version:
Declarative routing library for ReactJS ⚛ with animations baked in ⏮
60 lines (59 loc) • 2.72 kB
TypeScript
import { ParamsDeserializer, ParamsSerializer, PlainObject, RouterEventMap } from "./common/types";
import HistoryBase from "./HistoryBase";
import MetaData from "./MetaData";
import RouterData from "./RouterData";
export interface BackEventDetail {
routerId: string;
signal: AbortSignal;
finished: Promise<void>;
}
export interface NavigateEventDetail {
routerId: string;
route: string;
routeParams?: any;
replace: boolean;
signal: AbortSignal;
finished: Promise<void>;
}
export type NavigateEvent = CustomEvent<NavigateEventDetail>;
export type BackEvent = CustomEvent<BackEventDetail>;
export interface NavigationOptions {
signal?: AbortSignal;
}
export interface NavigateOptions extends NavigationOptions {
replace?: boolean;
hash?: string;
}
export interface GoBackOptions extends NavigationOptions {
}
export default abstract class NavigationBase {
protected readonly routerData: RouterData;
private static rootNavigatorRef;
protected readonly _routerId: string;
private _metaData;
protected abstract _history: HistoryBase;
protected readonly _disableBrowserRouting: boolean;
protected _currentParams: PlainObject;
constructor(_routerId: string, _routerData: RouterData, _disableBrowserRouting?: boolean, _defaultRoute?: string | null);
destructor(): void;
addEventListener<K extends keyof RouterEventMap>(type: K, listener: (this: HTMLElement, ev: RouterEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void | undefined;
removeEventListener<K extends keyof RouterEventMap>(type: K, listener: (this: HTMLElement, ev: RouterEventMap[K]) => any, options?: boolean | EventListenerOptions | undefined): void;
abstract get parent(): NavigationBase | null;
get disableBrowserRouting(): boolean;
get routerId(): string;
canGoBack(): boolean;
private popStateListener;
getNavigatorById(routerId: string, target?: NavigationBase): NavigationBase | null | undefined;
prefetchRoute(path: string): Promise<boolean>;
abstract get finished(): Promise<void>;
abstract onPopState(e: Event): void;
abstract navigate<T extends PlainObject = PlainObject>(route: string, routeParams?: T, options?: NavigateOptions): void;
abstract goBack(options?: GoBackOptions): void;
protected get dispatchEvent(): ((event: Event) => Promise<boolean>) | null;
get paramsDeserializer(): ParamsDeserializer | undefined;
get paramsSerializer(): ParamsSerializer | undefined;
get history(): HistoryBase;
get metaData(): MetaData;
abstract get location(): Location;
private get isInDocument();
}