UNPKG

@react-motion-router/core

Version:

Declarative routing library for ReactJS ⚛ with animations baked in ⏮

60 lines (59 loc) 2.72 kB
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(); }