UNPKG

@moxb/stellar-router-react

Version:

Stellar router: React widgets

56 lines (55 loc) 2.46 kB
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 {};