med-notes/.pnpm-store/v10/files/0c/0703414a45661c74bc480ffb2b800a685ad01aeb0809aa74ea7f8b72ae2cecb25b05a55e92a1ac0af2207c1ecda6e8c03fdf065d4a0ae6a7bc6a875dee1ccd
2025-05-09 05:30:08 +02:00

31 lines
974 B
Plaintext

import { useMatch } from './useMatch'
import type {
AnyRouter,
RegisteredRouter,
UseRouteContextBaseOptions,
UseRouteContextOptions,
UseRouteContextResult,
} from '@tanstack/router-core'
export type UseRouteContextRoute<out TFrom> = <
TRouter extends AnyRouter = RegisteredRouter,
TSelected = unknown,
>(
opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>,
) => UseRouteContextResult<TRouter, TFrom, true, TSelected>
export function useRouteContext<
TRouter extends AnyRouter = RegisteredRouter,
const TFrom extends string | undefined = undefined,
TStrict extends boolean = true,
TSelected = unknown,
>(
opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>,
): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected> {
return useMatch({
...(opts as any),
select: (match) =>
opts.select ? opts.select(match.context) : match.context,
}) as UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>
}