UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

21 lines (20 loc) 1.4 kB
import { AnyRouter, RegisteredRouter, RouterState } from '@tanstack/router-core'; import { StructuralSharingOption, ValidateSelected } from './structuralSharing.cjs'; export type UseRouterStateOptions<TRouter extends AnyRouter, TSelected, TStructuralSharing> = { router?: TRouter; select?: (state: RouterState<TRouter['routeTree']>) => ValidateSelected<TRouter, TSelected, TStructuralSharing>; } & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>; export type UseRouterStateResult<TRouter extends AnyRouter, TSelected> = unknown extends TSelected ? RouterState<TRouter['routeTree']> : TSelected; /** * Subscribe to the router's state store with optional selection and * structural sharing for render optimization. * * Options: * - `select`: Project the full router state to a derived slice * - `structuralSharing`: Replace-equal semantics for stable references * - `router`: Read state from a specific router instance instead of context * * @returns The selected router state (or the full state by default). * @link https://tanstack.com/router/latest/docs/framework/react/api/router/useRouterStateHook */ export declare function useRouterState<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts?: UseRouterStateOptions<TRouter, TSelected, TStructuralSharing>): UseRouterStateResult<TRouter, TSelected>;