@moxb/stellar-router-react
Version:
Stellar router: React widgets
56 lines (55 loc) • 2.46 kB
TypeScript
import * as React from 'react';
import { LocationManager, TokenManager, LinkGenerator, UpdateMethod } from '@moxb/stellar-router-core';
import { BasicLocationManagerProps } from '@moxb/stellar-router-core/dist/location-manager/BasicLocationManagerImpl';
import { UIStateSpace } from './LocationDependentArea';
export declare const LocationManagerProvider: React.Provider<LocationManager | undefined>;
export declare const useLocationManager: (reason?: string) => LocationManager;
export declare const useNavigate: (reason?: string) => (pathTokens: string[] | string, method?: UpdateMethod | undefined) => void;
export declare const TokenManagerProvider: React.Provider<TokenManager | undefined>;
export declare const useTokenManager: () => TokenManager | undefined;
export declare const LinkGeneratorProvider: React.Provider<LinkGenerator | undefined>;
export declare const useLinkGenerator: () => LinkGenerator | undefined;
/**
* The permanent data structures required for routing.
*
* This will be maintained as a global store, i.e. a singleton object, which will be made accessible
* to everyone using the routing provider.
*/
export interface RoutingStore extends Pick<LocationManager, 'navigate'> {
readonly locationManager: LocationManager;
readonly tokenManager: TokenManager;
readonly linkGenerator?: LinkGenerator;
}
/**
* Parameters for specifying behavior when creating a routing store
*/
export interface CreateRoutingStoreProps extends BasicLocationManagerProps {
/**
* Should we "wake up" the location manager?
*
* Normally the LocationManager will start to watch the history right away.
* In some special cases this is not desired, and so we want to "let it sleep".
* If so, set this optional flag to false.
* (The default is true.)
*/
activate?: boolean;
/**
* Optional description of the state space.
* (This is only required if we want to be able to generate links based on NavRefs.)
*/
stateSpace?: UIStateSpace<any>;
/**
* Should we run the token manager in debug mode?
*/
tokenDebug?: boolean;
}
/**
* Create a store that will be used for routing.
*/
export declare function createRoutingStore(props?: CreateRoutingStoreProps): RoutingStore;
interface RoutingProviderProps {
store: RoutingStore;
children: React.ReactNode;
}
export declare const StellarRouterProvider: (props: RoutingProviderProps) => JSX.Element;
export {};