expo-router
Version: 
Expo Router is a file-based router for React Native and web applications.
54 lines • 1.73 kB
TypeScript
import { PathConfigMap } from '@react-navigation/native';
import type { NavigationState, PartialState } from '@react-navigation/routers';
import type { ExpoOptions, ExpoRouteConfig } from './getStateFromPath-forks';
import { RouterStore } from '../global-state/router-store';
export type Options<ParamList extends object> = ExpoOptions & {
    path?: string;
    initialRouteName?: string;
    screens: PathConfigMap<ParamList>;
};
type ParseConfig = Record<string, (value: string) => any>;
export type RouteConfig = ExpoRouteConfig & {
    screen: string;
    regex?: RegExp;
    path: string;
    pattern: string;
    routeNames: string[];
    parse?: ParseConfig;
};
export type InitialRouteConfig = {
    initialRouteName: string;
    parentScreens: string[];
};
export type ResultState = PartialState<NavigationState> & {
    state?: ResultState;
};
export type ParsedRoute = {
    name: string;
    path?: string;
    params?: Record<string, any> | undefined;
};
/**
 * Utility to parse a path string to initial state object accepted by the container.
 * This is useful for deep linking when we need to handle the incoming URL.
 *
 * @example
 * ```js
 * getStateFromPath(
 *   '/chat/jane/42',
 *   {
 *     screens: {
 *       Chat: {
 *         path: 'chat/:author/:id',
 *         parse: { id: Number }
 *       }
 *     }
 *   }
 * )
 * ```
 * @param path Path string to parse and convert, e.g. /foo/bar?count=42.
 * @param options Extra options to fine-tune how to parse the path.
 */
export declare function getStateFromPath<ParamList extends object>(this: RouterStore | undefined | void, path: string, options?: Options<ParamList>): ResultState | undefined;
export {};
//# sourceMappingURL=getStateFromPath.d.ts.map