@tanstack/react-router 1.4.8 → 1.4.10
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/build/cjs/Matches.js.map +1 -1
- package/build/cjs/link.js.map +1 -1
- package/build/cjs/route.js +1 -2
- package/build/cjs/route.js.map +1 -1
- package/build/cjs/useNavigate.js +1 -2
- package/build/cjs/useNavigate.js.map +1 -1
- package/build/cjs/useParams.js.map +1 -1
- package/build/cjs/useSearch.js.map +1 -1
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2 -4
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +355 -355
- package/build/types/Matches.d.ts +9 -9
- package/build/types/link.d.ts +6 -6
- package/build/types/useNavigate.d.ts +3 -2
- package/build/types/useParams.d.ts +3 -3
- package/build/types/useSearch.d.ts +3 -3
- package/build/types/utils.d.ts +4 -3
- package/build/umd/index.development.js +2 -4
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/Matches.tsx +10 -12
- package/src/link.tsx +6 -5
- package/src/route.ts +12 -13
- package/src/useNavigate.tsx +4 -3
- package/src/useParams.tsx +4 -5
- package/src/useSearch.tsx +4 -5
- package/src/utils.ts +8 -3
package/build/types/Matches.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ResolveRelativePath, ToOptions } from './link';
|
|
3
|
-
import { AnyRoute, ReactNode } from './route';
|
|
4
|
-
import {
|
|
3
|
+
import { AnyRoute, ReactNode, RootSearchSchema } from './route';
|
|
4
|
+
import { ParseRoute, RouteById, RouteByPath, RouteIds, RoutePaths } from './routeInfo';
|
|
5
5
|
import { RegisteredRouter, RouterState } from './router';
|
|
6
6
|
import { NoInfer, StrictOrFrom } from './utils';
|
|
7
7
|
export declare const matchContext: React.Context<string | undefined>;
|
|
@@ -21,7 +21,7 @@ export interface RouteMatch<TRouteTree extends AnyRoute = AnyRoute, TRouteId ext
|
|
|
21
21
|
loaderData?: RouteById<TRouteTree, TRouteId>['types']['loaderData'];
|
|
22
22
|
routeContext: RouteById<TRouteTree, TRouteId>['types']['routeContext'];
|
|
23
23
|
context: RouteById<TRouteTree, TRouteId>['types']['allContext'];
|
|
24
|
-
search:
|
|
24
|
+
search: Exclude<RouteById<TRouteTree, TRouteId>['types']['fullSearchSchema'], RootSearchSchema>;
|
|
25
25
|
fetchCount: number;
|
|
26
26
|
abortController: AbortController;
|
|
27
27
|
cause: 'preload' | 'enter' | 'stay';
|
|
@@ -49,18 +49,18 @@ export type MakeMatchRouteOptions<TRouteTree extends AnyRoute = RegisteredRouter
|
|
|
49
49
|
};
|
|
50
50
|
export declare function MatchRoute<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''>(props: MakeMatchRouteOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>): any;
|
|
51
51
|
export declare function getRenderedMatches(state: RouterState): RouteMatch<AnyRoute, any>[];
|
|
52
|
-
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
52
|
+
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TRouteMatchState = RouteMatch<TRouteTree, TFrom>, TSelected = TRouteMatchState>(opts: StrictOrFrom<TFrom> & {
|
|
53
53
|
select?: (match: TRouteMatchState) => TSelected;
|
|
54
|
-
}):
|
|
54
|
+
}): TSelected;
|
|
55
55
|
export declare function useMatches<T = RouteMatch[]>(opts?: {
|
|
56
56
|
select?: (matches: RouteMatch[]) => T;
|
|
57
57
|
}): T;
|
|
58
58
|
export declare function useParentMatches<T = RouteMatch[]>(opts?: {
|
|
59
59
|
select?: (matches: RouteMatch[]) => T;
|
|
60
60
|
}): T;
|
|
61
|
-
export declare function useLoaderDeps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
61
|
+
export declare function useLoaderDeps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TRouteMatch extends RouteMatch<TRouteTree, TFrom> = RouteMatch<TRouteTree, TFrom>, TSelected = Required<TRouteMatch>['loaderDeps']>(opts: StrictOrFrom<TFrom> & {
|
|
62
62
|
select?: (match: TRouteMatch) => TSelected;
|
|
63
|
-
}):
|
|
64
|
-
export declare function useLoaderData<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
63
|
+
}): TSelected;
|
|
64
|
+
export declare function useLoaderData<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TRouteMatch extends RouteMatch<TRouteTree, TFrom> = RouteMatch<TRouteTree, TFrom>, TSelected = Required<TRouteMatch>['loaderData']>(opts: StrictOrFrom<TFrom> & {
|
|
65
65
|
select?: (match: TRouteMatch) => TSelected;
|
|
66
|
-
}):
|
|
66
|
+
}): TSelected;
|
package/build/types/link.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { AnyRoute, ReactNode, RootSearchSchema } from './route';
|
|
|
4
4
|
import { RouteByPath, RoutePaths } from './routeInfo';
|
|
5
5
|
import { RegisteredRouter } from './router';
|
|
6
6
|
import { LinkProps, UseLinkPropsOptions } from './useNavigate';
|
|
7
|
-
import { Expand, NoInfer, NonNullableUpdater, PickRequired, Updater, WithoutEmpty } from './utils';
|
|
7
|
+
import { Expand, NoInfer, NonNullableUpdater, PickRequired, StringLiteral, Updater, WithoutEmpty } from './utils';
|
|
8
8
|
import { HistoryState } from '@tanstack/history';
|
|
9
9
|
export type CleanPath<T extends string> = T extends `${infer L}//${infer R}` ? CleanPath<`${CleanPath<L>}/${CleanPath<R>}`> : T extends `${infer L}//` ? `${CleanPath<L>}/` : T extends `//${infer L}` ? `/${CleanPath<L>}` : T;
|
|
10
10
|
export type Split<S, TIncludeTrailingSlash = true> = S extends unknown ? string extends S ? string[] : S extends string ? CleanPath<S> extends '' ? [] : TIncludeTrailingSlash extends true ? CleanPath<S> extends `${infer T}/` ? [...Split<T>, '/'] : CleanPath<S> extends `/${infer U}` ? Split<U> : CleanPath<S> extends `${infer T}/${infer U}` ? [...Split<T>, ...Split<U>] : [S] : CleanPath<S> extends `${infer T}/${infer U}` ? [...Split<T>, ...Split<U>] : S extends string ? [S] : never : never : never;
|
|
@@ -26,22 +26,22 @@ export type RelativeToPathAutoComplete<AllPaths extends string, TFrom extends st
|
|
|
26
26
|
] ? `${TTo}${Join<RestPath>}` : never : (TFrom extends `/` ? never : SplitPaths extends [...Split<TFrom, false>, ...infer RestPath] ? Join<RestPath> extends {
|
|
27
27
|
length: 0;
|
|
28
28
|
} ? never : './' : never) | (TFrom extends `/` ? never : '../') | AllPaths;
|
|
29
|
-
export type NavigateOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string =
|
|
29
|
+
export type NavigateOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string = RoutePaths<TRouteTree>, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''> = ToOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> & {
|
|
30
30
|
replace?: boolean;
|
|
31
31
|
resetScroll?: boolean;
|
|
32
32
|
startTransition?: boolean;
|
|
33
33
|
};
|
|
34
|
-
export type ToOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string =
|
|
34
|
+
export type ToOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string = RoutePaths<TRouteTree>, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''> = ToSubOptions<TRouteTree, TFrom, TTo> & {
|
|
35
35
|
mask?: ToMaskOptions<TRouteTree, TMaskFrom, TMaskTo>;
|
|
36
36
|
};
|
|
37
|
-
export type ToMaskOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TMaskFrom extends RoutePaths<TRouteTree> | string =
|
|
37
|
+
export type ToMaskOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TMaskFrom extends RoutePaths<TRouteTree> | string = RoutePaths<TRouteTree>, TMaskTo extends string = ''> = ToSubOptions<TRouteTree, TMaskFrom, TMaskTo> & {
|
|
38
38
|
unmaskOnReload?: boolean;
|
|
39
39
|
};
|
|
40
|
-
export type ToSubOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string =
|
|
40
|
+
export type ToSubOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string = RoutePaths<TRouteTree>, TTo extends string = '', TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>> = {
|
|
41
41
|
to?: ToPathOption<TRouteTree, TFrom, TTo>;
|
|
42
42
|
hash?: true | Updater<string>;
|
|
43
43
|
state?: true | NonNullableUpdater<HistoryState>;
|
|
44
|
-
from?: TFrom
|
|
44
|
+
from?: StringLiteral<TFrom>;
|
|
45
45
|
} & CheckPath<TRouteTree, NoInfer<TResolved>, {}> & SearchParamOptions<TRouteTree, TFrom, TTo, TResolved> & PathParamOptions<TRouteTree, TFrom, TTo, TResolved>;
|
|
46
46
|
type ParamsReducer<TFrom, TTo> = TTo | ((current: TFrom) => TTo);
|
|
47
47
|
type ParamVariant = 'PATH' | 'SEARCH';
|
|
@@ -3,8 +3,9 @@ import { LinkOptions, NavigateOptions } from './link';
|
|
|
3
3
|
import { AnyRoute } from './route';
|
|
4
4
|
import { RoutePaths } from './routeInfo';
|
|
5
5
|
import { RegisteredRouter } from './router';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { StringLiteral } from './utils';
|
|
7
|
+
export declare function useNavigate<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDefaultFrom extends RoutePaths<TRouteTree> | string = RoutePaths<TRouteTree>>(_defaultOpts?: {
|
|
8
|
+
from?: StringLiteral<TDefaultFrom>;
|
|
8
9
|
}): <TFrom extends string | import("./routeInfo").ParseRoute<TRouteTree>["fullPath"] = TDefaultFrom, TTo extends string = "", TMaskFrom extends string | import("./routeInfo").ParseRoute<TRouteTree>["fullPath"] = TFrom, TMaskTo extends string = "">({ from, ...rest }: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>;
|
|
9
10
|
export declare function Navigate<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''>(props: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>): null;
|
|
10
11
|
export type UseLinkPropsOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''> = ActiveLinkOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyRoute } from './route';
|
|
2
|
-
import { RouteIds, RouteById
|
|
2
|
+
import { RouteIds, RouteById } from './routeInfo';
|
|
3
3
|
import { RegisteredRouter } from './router';
|
|
4
4
|
import { StrictOrFrom } from './utils';
|
|
5
|
-
export declare function useParams<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
6
|
-
select?: (
|
|
5
|
+
export declare function useParams<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TParams = RouteById<TRouteTree, TFrom>['types']['allParams'], TSelected = TParams>(opts: StrictOrFrom<TFrom> & {
|
|
6
|
+
select?: (params: TParams) => TSelected;
|
|
7
7
|
}): TSelected;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AnyRoute } from './route';
|
|
1
|
+
import { AnyRoute, RootSearchSchema } from './route';
|
|
2
2
|
import { RouteIds, RouteById } from './routeInfo';
|
|
3
3
|
import { RegisteredRouter } from './router';
|
|
4
4
|
import { StrictOrFrom } from './utils';
|
|
5
|
-
export declare function useSearch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
5
|
+
export declare function useSearch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TSearch = Exclude<RouteById<TRouteTree, TFrom>['types']['fullSearchSchema'], RootSearchSchema>, TSelected = TSearch>(opts: StrictOrFrom<TFrom> & {
|
|
6
6
|
select?: (search: TSearch) => TSelected;
|
|
7
|
-
}):
|
|
7
|
+
}): TSelected;
|
package/build/types/utils.d.ts
CHANGED
|
@@ -36,16 +36,17 @@ export declare function isPlainArray(value: unknown): boolean;
|
|
|
36
36
|
export declare function deepEqual(a: any, b: any, partial?: boolean): boolean;
|
|
37
37
|
export declare function useStableCallback<T extends (...args: any[]) => any>(fn: T): T;
|
|
38
38
|
export declare function shallow<T>(objA: T, objB: T): boolean;
|
|
39
|
+
export type StringLiteral<T> = T extends string ? string extends T ? string : T : never;
|
|
39
40
|
export type StrictOrFrom<TFrom> = {
|
|
40
|
-
from: TFrom;
|
|
41
|
+
from: StringLiteral<TFrom> | TFrom;
|
|
41
42
|
strict?: true;
|
|
42
43
|
} | {
|
|
43
44
|
from?: never;
|
|
44
45
|
strict: false;
|
|
45
46
|
};
|
|
46
|
-
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,
|
|
47
|
+
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TRouteContext = RouteById<TRouteTree, TFrom>['types']['allContext'], TSelected = TRouteContext>(opts: StrictOrFrom<TFrom> & {
|
|
47
48
|
select?: (search: TRouteContext) => TSelected;
|
|
48
|
-
}):
|
|
49
|
+
}): TSelected;
|
|
49
50
|
export declare const useLayoutEffect: typeof React.useLayoutEffect;
|
|
50
51
|
export declare function escapeJSON(jsonString: string): string;
|
|
51
52
|
export {};
|
|
@@ -1609,13 +1609,12 @@
|
|
|
1609
1609
|
}
|
|
1610
1610
|
useMatch = opts => {
|
|
1611
1611
|
return useMatch({
|
|
1612
|
-
|
|
1612
|
+
select: opts?.select,
|
|
1613
1613
|
from: this.id
|
|
1614
1614
|
});
|
|
1615
1615
|
};
|
|
1616
1616
|
useRouteContext = opts => {
|
|
1617
1617
|
return useMatch({
|
|
1618
|
-
...opts,
|
|
1619
1618
|
from: this.id,
|
|
1620
1619
|
select: d => opts?.select ? opts.select(d.context) : d.context
|
|
1621
1620
|
});
|
|
@@ -3368,8 +3367,7 @@
|
|
|
3368
3367
|
|
|
3369
3368
|
function useNavigate(_defaultOpts) {
|
|
3370
3369
|
const {
|
|
3371
|
-
navigate
|
|
3372
|
-
buildLocation
|
|
3370
|
+
navigate
|
|
3373
3371
|
} = useRouter();
|
|
3374
3372
|
const matchPathname = useMatch({
|
|
3375
3373
|
strict: false,
|