@tanstack/react-router 1.92.6 → 1.92.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +5 -5
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/link.d.cts +17 -17
- package/dist/cjs/redirects.cjs.map +1 -1
- package/dist/cjs/redirects.d.cts +1 -1
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +1 -1
- package/dist/cjs/routeInfo.d.cts +1 -0
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderData.d.cts +1 -1
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.d.cts +1 -1
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useMatch.d.cts +1 -1
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useNavigate.d.cts +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useParams.d.cts +1 -1
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouteContext.d.cts +1 -1
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/useSearch.d.cts +1 -1
- package/dist/esm/Matches.d.ts +5 -5
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/link.d.ts +17 -17
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/redirects.d.ts +1 -1
- package/dist/esm/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +1 -1
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/routeInfo.d.ts +1 -0
- package/dist/esm/useLoaderData.d.ts +1 -1
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.d.ts +1 -1
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useMatch.d.ts +1 -1
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +1 -1
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +1 -1
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +1 -1
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useSearch.d.ts +1 -1
- package/dist/esm/useSearch.js.map +1 -1
- package/package.json +2 -8
- package/src/Matches.tsx +15 -22
- package/src/link.tsx +72 -57
- package/src/redirects.ts +4 -4
- package/src/route.ts +4 -3
- package/src/routeInfo.ts +6 -0
- package/src/useLoaderData.tsx +1 -1
- package/src/useLoaderDeps.tsx +1 -1
- package/src/useMatch.tsx +1 -1
- package/src/useNavigate.tsx +4 -4
- package/src/useParams.tsx +1 -1
- package/src/useRouteContext.ts +1 -1
- package/src/useSearch.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { RouteById } from './routeInfo'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n deps: ResolveLoaderDeps<TRouter, TFrom>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveLoaderDeps<TRouter extends AnyRouter, TFrom> = Expand<\n RouteById<TRouter['routeTree'], TFrom>['types']['loaderDeps']\n>\n\nexport type UseLoaderDepsResult<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> = unknown extends TSelected ? ResolveLoaderDeps<TRouter, TFrom> : TSelected\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, false>,\n) => UseLoaderDepsResult<TRouter, TId, TSelected>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected, TStructuralSharing>,\n): UseLoaderDepsResult<TRouter, TFrom, TSelected> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as UseLoaderDepsResult<TRouter, TFrom, TSelected>\n}\n"],"names":[],"mappings":";AAgDO,SAAS,cAMd,MACgD;AAChD,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAC5B,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACb,aAAO,SAAS,OAAO,EAAE,UAAU,IAAI,EAAE;AAAA,IAAA;AAAA,EAC3C,CACD;AACH;"}
|
|
1
|
+
{"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { RouteById } from './routeInfo'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n deps: ResolveLoaderDeps<TRouter, TFrom>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveLoaderDeps<TRouter extends AnyRouter, TFrom> = Expand<\n RouteById<TRouter['routeTree'], TFrom>['types']['loaderDeps']\n>\n\nexport type UseLoaderDepsResult<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> = unknown extends TSelected ? ResolveLoaderDeps<TRouter, TFrom> : TSelected\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, false>,\n) => UseLoaderDepsResult<TRouter, TId, TSelected>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected, TStructuralSharing>,\n): UseLoaderDepsResult<TRouter, TFrom, TSelected> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as UseLoaderDepsResult<TRouter, TFrom, TSelected>\n}\n"],"names":[],"mappings":";AAgDO,SAAS,cAMd,MACgD;AAChD,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAC5B,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACb,aAAO,SAAS,OAAO,EAAE,UAAU,IAAI,EAAE;AAAA,IAAA;AAAA,EAC3C,CACD;AACH;"}
|
package/dist/esm/useMatch.d.ts
CHANGED
|
@@ -10,5 +10,5 @@ export type UseMatchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRo
|
|
|
10
10
|
export type UseMatchOptions<TRouter extends AnyRouter, TFrom extends string | undefined, TStrict extends boolean, TSelected, TThrow extends boolean, TStructuralSharing extends boolean> = StrictOrFrom<TRouter, TFrom, TStrict> & UseMatchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>;
|
|
11
11
|
export type UseMatchResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? TStrict extends true ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict> : MakeRouteMatchUnion<TRouter> : TSelected;
|
|
12
12
|
type ThrowConstraint<TStrict extends boolean, TThrow extends boolean> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow;
|
|
13
|
-
export declare function useMatch<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseMatchOptions<TRouter, TFrom, TStrict, TSelected, ThrowConstraint<TStrict, TThrow>, TStructuralSharing>): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>;
|
|
13
|
+
export declare function useMatch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseMatchOptions<TRouter, TFrom, TStrict, TSelected, ThrowConstraint<TStrict, TThrow>, TStructuralSharing>): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>;
|
|
14
14
|
export {};
|
package/dist/esm/useMatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { dummyMatchContext, matchContext } from './matchContext'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { MakeRouteMatch, MakeRouteMatchUnion } from './Matches'\nimport type { StrictOrFrom, ThrowOrOptional } from './utils'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow,\n TSelected,\n TStructuralSharing extends boolean,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseMatchBaseOptions<\n TRouter,\n TFrom,\n true,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseMatchResult<TRouter, TFrom, true, TSelected>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TThrow extends boolean,\n TStructuralSharing extends boolean,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<\n TRouter,\n TFrom,\n TStrict,\n TThrow,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\ntype ThrowConstraint<\n TStrict extends boolean,\n TThrow extends boolean,\n> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n ThrowConstraint<TStrict, TThrow>,\n TStructuralSharing\n >,\n): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow> {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext,\n )\n\n const matchSelection = useRouterState({\n select: (state: any) => {\n const match = state.matches.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId,\n )\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return undefined\n }\n\n return opts.select ? opts.select(match) : match\n },\n structuralSharing: opts.structuralSharing,\n } as any)\n\n return matchSelection as any\n}\n"],"names":[],"mappings":";;;;AA4EO,SAAS,SAQd,MAQ6E;AAC7E,QAAM,iBAAiB,MAAM;AAAA,IAC3B,KAAK,OAAO,oBAAoB;AAAA,EAClC;AAEA,QAAM,iBAAiB,eAAe;AAAA,IACpC,QAAQ,CAAC,UAAe;AAChB,YAAA,QAAQ,MAAM,QAAQ;AAAA,QAAK,CAAC,MAChC,KAAK,OAAO,KAAK,SAAS,EAAE,UAAU,EAAE,OAAO;AAAA,MACjD;AACA;AAAA,QACE,GAAG,KAAK,eAAe,SAAS,CAAC;AAAA,QACjC,kBAAkB,KAAK,OAAO,yBAAyB,KAAK,IAAI,MAAM,kBAAkB;AAAA,MAC1F;AAEA,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MAAA;AAGT,aAAO,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,IAC5C;AAAA,IACA,mBAAmB,KAAK;AAAA,EAAA,CAClB;AAED,SAAA;AACT;"}
|
|
1
|
+
{"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { dummyMatchContext, matchContext } from './matchContext'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { MakeRouteMatch, MakeRouteMatchUnion } from './Matches'\nimport type { StrictOrFrom, ThrowOrOptional } from './utils'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow,\n TSelected,\n TStructuralSharing extends boolean,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseMatchBaseOptions<\n TRouter,\n TFrom,\n true,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseMatchResult<TRouter, TFrom, true, TSelected>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TThrow extends boolean,\n TStructuralSharing extends boolean,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<\n TRouter,\n TFrom,\n TStrict,\n TThrow,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\ntype ThrowConstraint<\n TStrict extends boolean,\n TThrow extends boolean,\n> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n ThrowConstraint<TStrict, TThrow>,\n TStructuralSharing\n >,\n): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow> {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext,\n )\n\n const matchSelection = useRouterState({\n select: (state: any) => {\n const match = state.matches.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId,\n )\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return undefined\n }\n\n return opts.select ? opts.select(match) : match\n },\n structuralSharing: opts.structuralSharing,\n } as any)\n\n return matchSelection as any\n}\n"],"names":[],"mappings":";;;;AA4EO,SAAS,SAQd,MAQ6E;AAC7E,QAAM,iBAAiB,MAAM;AAAA,IAC3B,KAAK,OAAO,oBAAoB;AAAA,EAClC;AAEA,QAAM,iBAAiB,eAAe;AAAA,IACpC,QAAQ,CAAC,UAAe;AAChB,YAAA,QAAQ,MAAM,QAAQ;AAAA,QAAK,CAAC,MAChC,KAAK,OAAO,KAAK,SAAS,EAAE,UAAU,EAAE,OAAO;AAAA,MACjD;AACA;AAAA,QACE,GAAG,KAAK,eAAe,SAAS,CAAC;AAAA,QACjC,kBAAkB,KAAK,OAAO,yBAAyB,KAAK,IAAI,MAAM,kBAAkB;AAAA,MAC1F;AAEA,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MAAA;AAGT,aAAO,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,IAC5C;AAAA,IACA,mBAAmB,KAAK;AAAA,EAAA,CAClB;AAED,SAAA;AACT;"}
|
|
@@ -4,4 +4,4 @@ export type UseNavigateResult<TDefaultFrom extends string> = <TRouter extends Re
|
|
|
4
4
|
export declare function useNavigate<TRouter extends AnyRouter = RegisteredRouter, TDefaultFrom extends string = string>(_defaultOpts?: {
|
|
5
5
|
from?: FromPathOption<TRouter, TDefaultFrom>;
|
|
6
6
|
}): UseNavigateResult<TDefaultFrom>;
|
|
7
|
-
export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined =
|
|
7
|
+
export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n TRouter extends RegisteredRouter,\n TTo extends string | undefined,\n TFrom extends string = TDefaultFrom,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n ...rest\n}: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\n\nexport function useNavigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TDefaultFrom extends string = string,\n>(_defaultOpts?: {\n from?: FromPathOption<TRouter, TDefaultFrom>\n}): UseNavigateResult<TDefaultFrom> {\n const { navigate } = useRouter()\n\n return React.useCallback(\n (options: NavigateOptions) => {\n return navigate({\n ...options,\n })\n },\n [navigate],\n ) as UseNavigateResult<TDefaultFrom>\n}\n\n// NOTE: I don't know of anyone using this. It's undocumented, so let's wait until someone needs it\n// export function typedNavigate<\n// TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n// TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n// >(navigate: (opts: NavigateOptions<any>) => Promise<void>) {\n// return navigate as <\n// TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n// TTo extends string = '',\n// TMaskFrom extends RoutePaths<TRouteTree> = '/',\n// TMaskTo extends string = '',\n// >(\n// opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n// ) => Promise<void>\n// } //\n\nexport function Navigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined =
|
|
1
|
+
{"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n TRouter extends RegisteredRouter,\n TTo extends string | undefined,\n TFrom extends string = TDefaultFrom,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n ...rest\n}: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\n\nexport function useNavigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TDefaultFrom extends string = string,\n>(_defaultOpts?: {\n from?: FromPathOption<TRouter, TDefaultFrom>\n}): UseNavigateResult<TDefaultFrom> {\n const { navigate } = useRouter()\n\n return React.useCallback(\n (options: NavigateOptions) => {\n return navigate({\n ...options,\n })\n },\n [navigate],\n ) as UseNavigateResult<TDefaultFrom>\n}\n\n// NOTE: I don't know of anyone using this. It's undocumented, so let's wait until someone needs it\n// export function typedNavigate<\n// TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n// TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n// >(navigate: (opts: NavigateOptions<any>) => Promise<void>) {\n// return navigate as <\n// TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n// TTo extends string = '',\n// TMaskFrom extends RoutePaths<TRouteTree> = '/',\n// TMaskTo extends string = '',\n// >(\n// opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n// ) => Promise<void>\n// } //\n\nexport function Navigate<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = string,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {\n const { navigate } = useRouter()\n\n React.useEffect(() => {\n navigate({\n ...props,\n } as any)\n }, [])\n\n return null\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,YAGd,cAEkC;AAC5B,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,SAAO,MAAM;AAAA,IACX,CAAC,YAA6B;AAC5B,aAAO,SAAS;AAAA,QACd,GAAG;AAAA,MAAA,CACJ;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AACF;AAiBO,SAAS,SAMd,OAAuE;AACjE,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,QAAM,UAAU,MAAM;AACX,aAAA;AAAA,MACP,GAAG;AAAA,IAAA,CACG;AAAA,EACV,GAAG,EAAE;AAEE,SAAA;AACT;"}
|
package/dist/esm/useParams.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export type UseParamsOptions<TRouter extends AnyRouter, TFrom extends string | u
|
|
|
9
9
|
export type ResolveParams<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllParams<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>;
|
|
10
10
|
export type UseParamsResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveParams<TRouter, TFrom, TStrict> : TSelected;
|
|
11
11
|
export type UseParamsRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts?: UseParamsBaseOptions<TRouter, TFrom, true, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>) => UseParamsResult<TRouter, TFrom, true, TSelected>;
|
|
12
|
-
export declare function useParams<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseParamsOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseParamsResult<TRouter, TFrom, TStrict, TSelected>;
|
|
12
|
+
export declare function useParams<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseParamsOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseParamsResult<TRouter, TFrom, TStrict, TSelected>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AllParams, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseParamsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n params: ResolveParams<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseParamsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseParamsBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveParams<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllParams<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>\n\nexport type UseParamsResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveParams<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseParamsRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseParamsBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseParamsResult<TRouter, TFrom, true, TSelected>\n\nexport function useParams<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseParamsOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseParamsResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.params) : match.params\n },\n } as any) as UseParamsResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACM;AACV;"}
|
|
1
|
+
{"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AllParams, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseParamsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n params: ResolveParams<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseParamsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseParamsBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveParams<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllParams<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>\n\nexport type UseParamsResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveParams<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseParamsRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseParamsBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseParamsResult<TRouter, TFrom, true, TSelected>\n\nexport function useParams<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseParamsOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseParamsResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.params) : match.params\n },\n } as any) as UseParamsResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACM;AACV;"}
|
|
@@ -8,4 +8,4 @@ export type UseRouteContextOptions<TRouter extends AnyRouter, TFrom extends stri
|
|
|
8
8
|
export type ResolveRouteContext<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllContext<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>;
|
|
9
9
|
export type UseRouteContextResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveRouteContext<TRouter, TFrom, TStrict> : TSelected;
|
|
10
10
|
export type UseRouteContextRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>) => UseRouteContextResult<TRouter, TFrom, true, TSelected>;
|
|
11
|
-
export declare function useRouteContext<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown>(opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>;
|
|
11
|
+
export declare 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>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AllContext, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseRouteContextBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (search: ResolveRouteContext<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseRouteContextOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type ResolveRouteContext<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllContext<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>\n\nexport type UseRouteContextResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveRouteContext<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseRouteContextRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>,\n) => UseRouteContextResult<TRouter, TFrom, true, TSelected>\n\nexport function useRouteContext<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>,\n): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n ...(opts as any),\n select: (match) =>\n opts.select ? opts.select(match.context) : match.context,\n }) as UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA8CO,SAAS,gBAMd,MAC2D;AAC3D,SAAO,SAAS;AAAA,IACd,GAAI;AAAA,IACJ,QAAQ,CAAC,UACP,KAAK,SAAS,KAAK,OAAO,MAAM,OAAO,IAAI,MAAM;AAAA,EAAA,CACpD;AACH;"}
|
|
1
|
+
{"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AllContext, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseRouteContextBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (search: ResolveRouteContext<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseRouteContextOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type ResolveRouteContext<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllContext<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>\n\nexport type UseRouteContextResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveRouteContext<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseRouteContextRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>,\n) => UseRouteContextResult<TRouter, TFrom, true, TSelected>\n\nexport function useRouteContext<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>,\n): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n ...(opts as any),\n select: (match) =>\n opts.select ? opts.select(match.context) : match.context,\n }) as UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA8CO,SAAS,gBAMd,MAC2D;AAC3D,SAAO,SAAS;AAAA,IACd,GAAI;AAAA,IACJ,QAAQ,CAAC,UACP,KAAK,SAAS,KAAK,OAAO,MAAM,OAAO,IAAI,MAAM;AAAA,EAAA,CACpD;AACH;"}
|
package/dist/esm/useSearch.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export type UseSearchOptions<TRouter extends AnyRouter, TFrom, TStrict extends b
|
|
|
9
9
|
export type UseSearchResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveSearch<TRouter, TFrom, TStrict> : TSelected;
|
|
10
10
|
export type ResolveSearch<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? FullSearchSchema<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>;
|
|
11
11
|
export type UseSearchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts?: UseSearchBaseOptions<TRouter, TFrom, true, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>) => UseSearchResult<TRouter, TFrom, true, TSelected>;
|
|
12
|
-
export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseSearchOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseSearchResult<TRouter, TFrom, TStrict, TSelected>;
|
|
12
|
+
export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseSearchOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseSearchResult<TRouter, TFrom, TStrict, TSelected>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { FullSearchSchema, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseSearchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n state: ResolveSearch<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseSearchOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseSearchBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseSearchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveSearch<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type ResolveSearch<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? FullSearchSchema<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>\n\nexport type UseSearchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseSearchBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseSearchResult<TRouter, TFrom, true, TSelected>\n\nexport function useSearch<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseSearchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseSearchResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n }) as UseSearchResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACD;AACH;"}
|
|
1
|
+
{"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { FullSearchSchema, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseSearchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n state: ResolveSearch<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseSearchOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseSearchBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseSearchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveSearch<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type ResolveSearch<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? FullSearchSchema<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>\n\nexport type UseSearchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseSearchBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseSearchResult<TRouter, TFrom, true, TSelected>\n\nexport function useSearch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseSearchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseSearchResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n }) as UseSearchResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACD;AACH;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-router",
|
|
3
|
-
"version": "1.92.
|
|
3
|
+
"version": "1.92.11",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -67,13 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"react": ">=18",
|
|
70
|
-
"react-dom": ">=18"
|
|
71
|
-
"@tanstack/router-generator": "^1.87.7"
|
|
72
|
-
},
|
|
73
|
-
"peerDependenciesMeta": {
|
|
74
|
-
"@tanstack/router-generator": {
|
|
75
|
-
"optional": true
|
|
76
|
-
}
|
|
70
|
+
"react-dom": ">=18"
|
|
77
71
|
},
|
|
78
72
|
"scripts": {}
|
|
79
73
|
}
|
package/src/Matches.tsx
CHANGED
|
@@ -13,7 +13,7 @@ import type {
|
|
|
13
13
|
} from './structuralSharing'
|
|
14
14
|
import type { AnyRoute, ReactNode, StaticDataRouteOption } from './route'
|
|
15
15
|
import type { AnyRouter, RegisteredRouter, RouterState } from './router'
|
|
16
|
-
import type { ResolveRelativePath, ToOptions } from './link'
|
|
16
|
+
import type { ResolveRelativePath, ResolveRoute, ToOptions } from './link'
|
|
17
17
|
import type {
|
|
18
18
|
AllContext,
|
|
19
19
|
AllLoaderData,
|
|
@@ -273,7 +273,7 @@ export type UseMatchRouteOptions<
|
|
|
273
273
|
TFrom extends RoutePaths<TRouter['routeTree']> | string = RoutePaths<
|
|
274
274
|
TRouter['routeTree']
|
|
275
275
|
>,
|
|
276
|
-
TTo extends string = '',
|
|
276
|
+
TTo extends string | undefined = '',
|
|
277
277
|
TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
|
|
278
278
|
TMaskTo extends string = '',
|
|
279
279
|
TOptions extends ToOptions<
|
|
@@ -297,16 +297,13 @@ export function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {
|
|
|
297
297
|
|
|
298
298
|
return React.useCallback(
|
|
299
299
|
<
|
|
300
|
-
TFrom extends
|
|
301
|
-
TTo extends string =
|
|
302
|
-
TMaskFrom extends
|
|
303
|
-
TMaskTo extends string = '',
|
|
304
|
-
TResolved extends string = ResolveRelativePath<TFrom, NoInfer<TTo>>,
|
|
300
|
+
const TFrom extends string = string,
|
|
301
|
+
const TTo extends string | undefined = undefined,
|
|
302
|
+
const TMaskFrom extends string = TFrom,
|
|
303
|
+
const TMaskTo extends string = '',
|
|
305
304
|
>(
|
|
306
305
|
opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
307
|
-
):
|
|
308
|
-
| false
|
|
309
|
-
| RouteByPath<TRouter['routeTree'], TResolved>['types']['allParams'] => {
|
|
306
|
+
): false | ResolveRoute<TRouter, TFrom, TTo>['types']['allParams'] => {
|
|
310
307
|
const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts
|
|
311
308
|
|
|
312
309
|
return router.matchRoute(rest as any, {
|
|
@@ -322,11 +319,9 @@ export function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {
|
|
|
322
319
|
|
|
323
320
|
export type MakeMatchRouteOptions<
|
|
324
321
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
325
|
-
TFrom extends
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
TTo extends string = '',
|
|
329
|
-
TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
|
|
322
|
+
TFrom extends string = string,
|
|
323
|
+
TTo extends string | undefined = undefined,
|
|
324
|
+
TMaskFrom extends string = TFrom,
|
|
330
325
|
TMaskTo extends string = '',
|
|
331
326
|
> = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
|
|
332
327
|
// If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns
|
|
@@ -342,15 +337,13 @@ export type MakeMatchRouteOptions<
|
|
|
342
337
|
|
|
343
338
|
export function MatchRoute<
|
|
344
339
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
345
|
-
TFrom extends
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
|
|
350
|
-
TMaskTo extends string = '',
|
|
340
|
+
const TFrom extends string = string,
|
|
341
|
+
const TTo extends string | undefined = undefined,
|
|
342
|
+
const TMaskFrom extends string = TFrom,
|
|
343
|
+
const TMaskTo extends string = '',
|
|
351
344
|
>(props: MakeMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): any {
|
|
352
345
|
const matchRoute = useMatchRoute()
|
|
353
|
-
const params = matchRoute(props as any)
|
|
346
|
+
const params = matchRoute(props as any) as boolean
|
|
354
347
|
|
|
355
348
|
if (typeof props.children === 'function') {
|
|
356
349
|
return (props.children as any)(params)
|
package/src/link.tsx
CHANGED
|
@@ -26,6 +26,7 @@ import type {
|
|
|
26
26
|
RouteByToPath,
|
|
27
27
|
RoutePaths,
|
|
28
28
|
RouteToPath,
|
|
29
|
+
ToPath,
|
|
29
30
|
TrailingSlashOptionByRouter,
|
|
30
31
|
} from './routeInfo'
|
|
31
32
|
import type {
|
|
@@ -59,63 +60,70 @@ export type ParsePathParams<T extends string, TAcc = never> = T &
|
|
|
59
60
|
: never
|
|
60
61
|
: TAcc
|
|
61
62
|
|
|
62
|
-
export type AddTrailingSlash<T> = T
|
|
63
|
-
? `${T & string}/`
|
|
64
|
-
: T
|
|
63
|
+
export type AddTrailingSlash<T> = T extends `${string}/` ? T : `${T & string}/`
|
|
65
64
|
|
|
66
|
-
export type RemoveTrailingSlashes<T> = T
|
|
67
|
-
? T
|
|
68
|
-
: T extends `${infer R}/`
|
|
65
|
+
export type RemoveTrailingSlashes<T> = T extends `${string}/`
|
|
66
|
+
? T extends `${infer R}/`
|
|
69
67
|
? R
|
|
70
68
|
: T
|
|
71
|
-
|
|
72
|
-
export type AddLeadingSlash<T> = T & `/${string}` extends never
|
|
73
|
-
? `/${T & string}`
|
|
74
69
|
: T
|
|
75
70
|
|
|
76
|
-
export type
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
export type AddLeadingSlash<T> = T extends `/${string}` ? T : `/${T & string}`
|
|
72
|
+
|
|
73
|
+
export type RemoveLeadingSlashes<T> = T extends `/${string}`
|
|
74
|
+
? T extends `/${infer R}`
|
|
79
75
|
? R
|
|
80
76
|
: T
|
|
77
|
+
: T
|
|
81
78
|
|
|
82
79
|
export type FindDescendantPaths<
|
|
83
80
|
TRouter extends AnyRouter,
|
|
84
81
|
TPrefix extends string,
|
|
85
|
-
> = `${TPrefix}
|
|
82
|
+
> = `${TPrefix}/${string}` & RouteToPath<TRouter>
|
|
86
83
|
|
|
87
84
|
export type SearchPaths<
|
|
88
85
|
TRouter extends AnyRouter,
|
|
89
86
|
TPrefix extends string,
|
|
90
87
|
TPaths = FindDescendantPaths<TRouter, TPrefix>,
|
|
91
|
-
> = TPaths extends `${TPrefix}
|
|
88
|
+
> = TPaths extends `${TPrefix}/`
|
|
89
|
+
? never
|
|
90
|
+
: TPaths extends `${TPrefix}/${infer TRest}`
|
|
91
|
+
? TRest
|
|
92
|
+
: never
|
|
92
93
|
|
|
93
94
|
export type SearchRelativePathAutoComplete<
|
|
94
95
|
TRouter extends AnyRouter,
|
|
95
96
|
TTo extends string,
|
|
96
97
|
TSearchPath extends string,
|
|
97
|
-
> =
|
|
98
|
+
> =
|
|
99
|
+
| (TSearchPath & RouteToPath<TRouter> extends never
|
|
100
|
+
? never
|
|
101
|
+
: ToPath<TrailingSlashOptionByRouter<TRouter>, TTo>)
|
|
102
|
+
| `${TTo}/${SearchPaths<TRouter, RemoveTrailingSlashes<TSearchPath>>}`
|
|
98
103
|
|
|
99
104
|
export type RelativeToParentPathAutoComplete<
|
|
100
105
|
TRouter extends AnyRouter,
|
|
101
106
|
TFrom extends string,
|
|
102
107
|
TTo extends string,
|
|
103
|
-
TResolvedPath extends string =
|
|
104
|
-
ResolveRelativePath<TFrom, TTo>
|
|
105
|
-
>,
|
|
108
|
+
TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
|
|
106
109
|
> =
|
|
107
110
|
| SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
|
|
108
|
-
| (
|
|
109
|
-
?
|
|
110
|
-
|
|
111
|
+
| (TTo extends `${string}..` | `${string}../`
|
|
112
|
+
? TResolvedPath extends '/' | ''
|
|
113
|
+
? never
|
|
114
|
+
: FindDescendantPaths<
|
|
115
|
+
TRouter,
|
|
116
|
+
RemoveTrailingSlashes<TResolvedPath>
|
|
117
|
+
> extends never
|
|
118
|
+
? never
|
|
119
|
+
: `${TTo}/${ParentPath<TrailingSlashOptionByRouter<TRouter>>}`
|
|
120
|
+
: never)
|
|
111
121
|
|
|
112
122
|
export type RelativeToCurrentPathAutoComplete<
|
|
113
123
|
TRouter extends AnyRouter,
|
|
114
124
|
TFrom extends string,
|
|
115
125
|
TTo extends string,
|
|
116
|
-
TResolvedPath extends string =
|
|
117
|
-
ResolveRelativePath<TFrom, TTo>
|
|
118
|
-
>,
|
|
126
|
+
TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
|
|
119
127
|
> =
|
|
120
128
|
| SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
|
|
121
129
|
| CurrentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
@@ -128,9 +136,7 @@ export type AbsolutePathAutoComplete<
|
|
|
128
136
|
? CurrentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
129
137
|
: TFrom extends `/`
|
|
130
138
|
? never
|
|
131
|
-
:
|
|
132
|
-
? never
|
|
133
|
-
: CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
|
|
139
|
+
: CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
|
|
134
140
|
| (string extends TFrom
|
|
135
141
|
? ParentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
136
142
|
: TFrom extends `/`
|
|
@@ -141,7 +147,7 @@ export type AbsolutePathAutoComplete<
|
|
|
141
147
|
? never
|
|
142
148
|
: string extends TFrom
|
|
143
149
|
? never
|
|
144
|
-
:
|
|
150
|
+
: SearchPaths<TRouter, RemoveTrailingSlashes<TFrom>>)
|
|
145
151
|
|
|
146
152
|
export type RelativeToPathAutoComplete<
|
|
147
153
|
TRouter extends AnyRouter,
|
|
@@ -485,30 +491,39 @@ type RemoveLastSegment<
|
|
|
485
491
|
TAcc extends string = '',
|
|
486
492
|
> = T extends `${infer TSegment}/${infer TRest}`
|
|
487
493
|
? TRest & `${string}/${string}` extends never
|
|
488
|
-
?
|
|
494
|
+
? TRest extends ''
|
|
495
|
+
? TAcc
|
|
496
|
+
: `${TAcc}${TSegment}`
|
|
489
497
|
: RemoveLastSegment<TRest, `${TAcc}${TSegment}/`>
|
|
490
498
|
: TAcc
|
|
491
499
|
|
|
492
|
-
export type ResolveCurrentPath<
|
|
500
|
+
export type ResolveCurrentPath<
|
|
501
|
+
TFrom extends string,
|
|
502
|
+
TTo extends string,
|
|
503
|
+
> = TTo extends '.'
|
|
493
504
|
? TFrom
|
|
494
505
|
: TTo extends './'
|
|
495
506
|
? AddTrailingSlash<TFrom>
|
|
496
507
|
: TTo & `./${string}` extends never
|
|
497
508
|
? never
|
|
498
509
|
: TTo extends `./${infer TRest}`
|
|
499
|
-
?
|
|
510
|
+
? AddLeadingSlash<JoinPath<TFrom, TRest>>
|
|
500
511
|
: never
|
|
501
512
|
|
|
502
|
-
export type ResolveParentPath<
|
|
503
|
-
|
|
504
|
-
|
|
513
|
+
export type ResolveParentPath<
|
|
514
|
+
TFrom extends string,
|
|
515
|
+
TTo extends string,
|
|
516
|
+
> = TTo extends '../' | '..'
|
|
517
|
+
? TFrom extends '' | '/'
|
|
505
518
|
? never
|
|
506
|
-
:
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
:
|
|
519
|
+
: AddLeadingSlash<RemoveLastSegment<TFrom>>
|
|
520
|
+
: TTo & `../${string}` extends never
|
|
521
|
+
? AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
522
|
+
: TFrom extends '' | '/'
|
|
523
|
+
? never
|
|
524
|
+
: TTo extends `../${infer ToRest}`
|
|
525
|
+
? ResolveParentPath<RemoveLastSegment<TFrom>, ToRest>
|
|
526
|
+
: AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
512
527
|
|
|
513
528
|
export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
|
|
514
529
|
? TTo
|
|
@@ -516,15 +531,15 @@ export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
|
|
|
516
531
|
? TFrom
|
|
517
532
|
: undefined extends TTo
|
|
518
533
|
? TFrom
|
|
519
|
-
:
|
|
520
|
-
?
|
|
521
|
-
? TTo
|
|
522
|
-
? TTo
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
534
|
+
: TTo extends string
|
|
535
|
+
? TFrom extends string
|
|
536
|
+
? TTo extends `/${string}`
|
|
537
|
+
? TTo
|
|
538
|
+
: TTo extends `..${string}`
|
|
539
|
+
? ResolveParentPath<TFrom, TTo>
|
|
540
|
+
: TTo extends `.${string}`
|
|
541
|
+
? ResolveCurrentPath<TFrom, TTo>
|
|
542
|
+
: AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
528
543
|
: never
|
|
529
544
|
: never
|
|
530
545
|
|
|
@@ -555,10 +570,10 @@ const preloadWarning = 'Error preloading route! ☝️'
|
|
|
555
570
|
|
|
556
571
|
export function useLinkProps<
|
|
557
572
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
558
|
-
TFrom extends
|
|
559
|
-
TTo extends string =
|
|
560
|
-
TMaskFrom extends
|
|
561
|
-
TMaskTo extends string = '',
|
|
573
|
+
const TFrom extends string = string,
|
|
574
|
+
const TTo extends string | undefined = undefined,
|
|
575
|
+
const TMaskFrom extends string = TFrom,
|
|
576
|
+
const TMaskTo extends string = '',
|
|
562
577
|
>(
|
|
563
578
|
options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
564
579
|
forwardedRef?: React.ForwardedRef<Element>,
|
|
@@ -976,10 +991,10 @@ export type CreateLinkProps = LinkProps<
|
|
|
976
991
|
|
|
977
992
|
export type LinkComponent<TComp> = <
|
|
978
993
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
979
|
-
TFrom extends string = string,
|
|
980
|
-
TTo extends string | undefined = undefined,
|
|
981
|
-
TMaskFrom extends string = TFrom,
|
|
982
|
-
TMaskTo extends string = '',
|
|
994
|
+
const TFrom extends string = string,
|
|
995
|
+
const TTo extends string | undefined = undefined,
|
|
996
|
+
const TMaskFrom extends string = TFrom,
|
|
997
|
+
const TMaskTo extends string = '',
|
|
983
998
|
>(
|
|
984
999
|
props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
985
1000
|
) => React.ReactElement
|
package/src/redirects.ts
CHANGED
|
@@ -37,10 +37,10 @@ export type ResolvedRedirect<
|
|
|
37
37
|
|
|
38
38
|
export function redirect<
|
|
39
39
|
TRouter extends RegisteredRouter,
|
|
40
|
-
TTo extends string | undefined,
|
|
41
|
-
TFrom extends string = string,
|
|
42
|
-
TMaskFrom extends string = TFrom,
|
|
43
|
-
TMaskTo extends string = '',
|
|
40
|
+
const TTo extends string | undefined,
|
|
41
|
+
const TFrom extends string = string,
|
|
42
|
+
const TMaskFrom extends string = TFrom,
|
|
43
|
+
const TMaskTo extends string = '',
|
|
44
44
|
>(
|
|
45
45
|
opts: Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
46
46
|
): Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> {
|
package/src/route.ts
CHANGED
|
@@ -800,9 +800,10 @@ export type RouteTypesById<TRouter extends AnyRouter, TId> = RouteById<
|
|
|
800
800
|
TId
|
|
801
801
|
>['types']
|
|
802
802
|
|
|
803
|
-
export function getRouteApi<
|
|
804
|
-
|
|
805
|
-
|
|
803
|
+
export function getRouteApi<
|
|
804
|
+
const TId,
|
|
805
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
806
|
+
>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {
|
|
806
807
|
return new RouteApi<TId, TRouter>({ id })
|
|
807
808
|
}
|
|
808
809
|
|
package/src/routeInfo.ts
CHANGED
|
@@ -71,6 +71,12 @@ export type CurrentPath<TOption> = 'always' extends TOption
|
|
|
71
71
|
? '.'
|
|
72
72
|
: './' | '.'
|
|
73
73
|
|
|
74
|
+
export type ToPath<TOption, TTo extends string> = 'always' extends TOption
|
|
75
|
+
? `${TTo}/`
|
|
76
|
+
: 'never' extends TOption
|
|
77
|
+
? TTo
|
|
78
|
+
: TTo | `${TTo}/`
|
|
79
|
+
|
|
74
80
|
export type CatchAllPaths<TOption> = CurrentPath<TOption> | ParentPath<TOption>
|
|
75
81
|
|
|
76
82
|
export type CodeRoutesByPath<TRouteTree extends AnyRoute> =
|
package/src/useLoaderData.tsx
CHANGED
|
@@ -69,7 +69,7 @@ export type UseLoaderDataRoute<out TId> = <
|
|
|
69
69
|
|
|
70
70
|
export function useLoaderData<
|
|
71
71
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
72
|
-
TFrom extends string | undefined = undefined,
|
|
72
|
+
const TFrom extends string | undefined = undefined,
|
|
73
73
|
TStrict extends boolean = true,
|
|
74
74
|
TSelected = unknown,
|
|
75
75
|
TStructuralSharing extends boolean = boolean,
|
package/src/useLoaderDeps.tsx
CHANGED
|
@@ -48,7 +48,7 @@ export type UseLoaderDepsRoute<out TId> = <
|
|
|
48
48
|
|
|
49
49
|
export function useLoaderDeps<
|
|
50
50
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
51
|
-
TFrom extends string | undefined = undefined,
|
|
51
|
+
const TFrom extends string | undefined = undefined,
|
|
52
52
|
TSelected = unknown,
|
|
53
53
|
TStructuralSharing extends boolean = boolean,
|
|
54
54
|
>(
|
package/src/useMatch.tsx
CHANGED
|
@@ -76,7 +76,7 @@ type ThrowConstraint<
|
|
|
76
76
|
|
|
77
77
|
export function useMatch<
|
|
78
78
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
79
|
-
TFrom extends string | undefined = undefined,
|
|
79
|
+
const TFrom extends string | undefined = undefined,
|
|
80
80
|
TStrict extends boolean = true,
|
|
81
81
|
TThrow extends boolean = true,
|
|
82
82
|
TSelected = unknown,
|
package/src/useNavigate.tsx
CHANGED
|
@@ -49,10 +49,10 @@ export function useNavigate<
|
|
|
49
49
|
|
|
50
50
|
export function Navigate<
|
|
51
51
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
52
|
-
TFrom extends string = string,
|
|
53
|
-
TTo extends string | undefined =
|
|
54
|
-
TMaskFrom extends string = TFrom,
|
|
55
|
-
TMaskTo extends string = '
|
|
52
|
+
const TFrom extends string = string,
|
|
53
|
+
const TTo extends string | undefined = undefined,
|
|
54
|
+
const TMaskFrom extends string = TFrom,
|
|
55
|
+
const TMaskTo extends string = '',
|
|
56
56
|
>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {
|
|
57
57
|
const { navigate } = useRouter()
|
|
58
58
|
|
package/src/useParams.tsx
CHANGED
|
@@ -63,7 +63,7 @@ export type UseParamsRoute<out TFrom> = <
|
|
|
63
63
|
|
|
64
64
|
export function useParams<
|
|
65
65
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
66
|
-
TFrom extends string | undefined = undefined,
|
|
66
|
+
const TFrom extends string | undefined = undefined,
|
|
67
67
|
TStrict extends boolean = true,
|
|
68
68
|
TSelected = unknown,
|
|
69
69
|
TStructuralSharing extends boolean = boolean,
|
package/src/useRouteContext.ts
CHANGED
|
@@ -46,7 +46,7 @@ export type UseRouteContextRoute<out TFrom> = <
|
|
|
46
46
|
|
|
47
47
|
export function useRouteContext<
|
|
48
48
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
49
|
-
TFrom extends string | undefined = undefined,
|
|
49
|
+
const TFrom extends string | undefined = undefined,
|
|
50
50
|
TStrict extends boolean = true,
|
|
51
51
|
TSelected = unknown,
|
|
52
52
|
>(
|
package/src/useSearch.tsx
CHANGED
|
@@ -63,7 +63,7 @@ export type UseSearchRoute<out TFrom> = <
|
|
|
63
63
|
|
|
64
64
|
export function useSearch<
|
|
65
65
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
66
|
-
TFrom extends string | undefined = undefined,
|
|
66
|
+
const TFrom extends string | undefined = undefined,
|
|
67
67
|
TStrict extends boolean = true,
|
|
68
68
|
TSelected = unknown,
|
|
69
69
|
TStructuralSharing extends boolean = boolean,
|