Files
med-notes/.pnpm-store/v10/files/7e/1b049ad4954a1880a7e76a7821936a288b4c007e827f8f22093701b7b75375455f8c6ffcdd326bc1bb1f429aa5be6becefd86e7e7cdfe3564bb7b7757c7221
2025-05-09 05:30:08 +02:00

40 lines
1.0 KiB
Plaintext

import type { AllContext, RouteById } from './routeInfo'
import type { AnyRouter } from './router'
import type { Expand, StrictOrFrom } from './utils'
export interface UseRouteContextBaseOptions<
TRouter extends AnyRouter,
TFrom,
TStrict extends boolean,
TSelected,
> {
select?: (
search: ResolveUseRouteContext<TRouter, TFrom, TStrict>,
) => TSelected
}
export type UseRouteContextOptions<
TRouter extends AnyRouter,
TFrom extends string | undefined,
TStrict extends boolean,
TSelected,
> = StrictOrFrom<TRouter, TFrom, TStrict> &
UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>
export type ResolveUseRouteContext<
TRouter extends AnyRouter,
TFrom,
TStrict extends boolean,
> = TStrict extends false
? AllContext<TRouter['routeTree']>
: Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>
export type UseRouteContextResult<
TRouter extends AnyRouter,
TFrom,
TStrict extends boolean,
TSelected,
> = unknown extends TSelected
? ResolveUseRouteContext<TRouter, TFrom, TStrict>
: TSelected