@tanstack/react-router 0.0.1-beta.235 → 0.0.1-beta.237
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 +31 -18
- package/build/cjs/Matches.js.map +1 -1
- package/build/cjs/RouterProvider.js +45 -25
- package/build/cjs/RouterProvider.js.map +1 -1
- package/build/cjs/index.js +1 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/route.js +13 -7
- package/build/cjs/route.js.map +1 -1
- package/build/cjs/router.js +49 -37
- package/build/cjs/router.js.map +1 -1
- package/build/cjs/useParams.js +7 -2
- package/build/cjs/useParams.js.map +1 -1
- package/build/cjs/useSearch.js +6 -1
- package/build/cjs/useSearch.js.map +1 -1
- package/build/cjs/utils.js +4 -1
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +155 -92
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +574 -293
- package/build/types/Matches.d.ts +9 -3
- package/build/types/RouterProvider.d.ts +3 -0
- package/build/types/route.d.ts +30 -10
- package/build/types/router.d.ts +6 -3
- package/build/types/useParams.d.ts +3 -1
- package/build/types/useSearch.d.ts +3 -1
- package/build/types/utils.d.ts +3 -1
- package/build/umd/index.development.js +423 -95
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +4 -2
- package/src/Matches.tsx +70 -35
- package/src/RouterProvider.tsx +68 -32
- package/src/route.ts +37 -15
- package/src/router.ts +62 -44
- package/src/useParams.tsx +14 -4
- package/src/useSearch.tsx +11 -3
- package/src/utils.ts +20 -12
package/build/types/Matches.d.ts
CHANGED
|
@@ -45,7 +45,13 @@ export type MakeMatchRouteOptions<TRouteTree extends AnyRoute = RegisteredRouter
|
|
|
45
45
|
children?: ((params?: RouteByPath<TRouteTree, ResolveRelativePath<TFrom, NoInfer<TTo>>>['types']['allParams']) => ReactNode) | React.ReactNode;
|
|
46
46
|
};
|
|
47
47
|
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;
|
|
48
|
-
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TRouteMatchState = RouteMatch<TRouteTree, TFrom
|
|
48
|
+
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TRouteMatchState = RouteMatch<TRouteTree, TFrom>, TSelected = TRouteMatchState>(opts: StrictOrFrom<TFrom> & {
|
|
49
|
+
select?: (match: TRouteMatchState) => TSelected;
|
|
50
|
+
}): TStrict extends true ? TSelected : TSelected | undefined;
|
|
49
51
|
export declare const matchesContext: React.Context<RouteMatch<AnyRoute, any>[]>;
|
|
50
|
-
export declare function useMatches
|
|
51
|
-
|
|
52
|
+
export declare function useMatches<T = RouteMatch[]>(opts?: {
|
|
53
|
+
select?: (matches: RouteMatch[]) => T;
|
|
54
|
+
}): T;
|
|
55
|
+
export declare function useLoaderData<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TRouteMatch extends RouteMatch<TRouteTree, TFrom> = RouteMatch<TRouteTree, TFrom>, TSelected = TRouteMatch['loaderData']>(opts: StrictOrFrom<TFrom> & {
|
|
56
|
+
select?: (match: TRouteMatch) => TSelected;
|
|
57
|
+
}): TStrict extends true ? TSelected : TSelected | undefined;
|
|
@@ -26,6 +26,9 @@ export type InjectedHtmlEntry = string | (() => Promise<string> | string);
|
|
|
26
26
|
export declare const routerContext: React.Context<Router<any, Record<string, any>>>;
|
|
27
27
|
export declare function RouterProvider<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDehydrated extends Record<string, any> = Record<string, any>>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>): React.JSX.Element;
|
|
28
28
|
export declare function getRouteMatch<TRouteTree extends AnyRoute>(state: RouterState<TRouteTree>, id: string): undefined | RouteMatch<TRouteTree>;
|
|
29
|
+
export declare function useRouterState<TSelected = RouterState<RegisteredRouter['routeTree']>>(opts?: {
|
|
30
|
+
select: (state: RouterState<RegisteredRouter['routeTree']>) => TSelected;
|
|
31
|
+
}): TSelected;
|
|
29
32
|
export type RouterProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDehydrated extends Record<string, any> = Record<string, any>> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {
|
|
30
33
|
router: Router<TRouteTree>;
|
|
31
34
|
context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>;
|
package/build/types/route.d.ts
CHANGED
|
@@ -180,11 +180,21 @@ export declare class Route<TParentRoute extends RouteConstraints['TParentRoute']
|
|
|
180
180
|
addChildren: <TNewChildren extends AnyRoute[]>(children: TNewChildren) => Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContext, TAllContext, TRouterContext, TNewChildren, TRouteTree, AnyRoute>;
|
|
181
181
|
update: (options: UpdatableRouteOptions<TFullSearchSchema, TAllParams, Expand<Assign<IsAny<TParentRoute['types']['allContext'], {}>, TRouteContext>>, TLoaderData>) => this;
|
|
182
182
|
static __onInit: (route: any) => void;
|
|
183
|
-
useMatch:
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
183
|
+
useMatch: <TSelected = TAllContext>(opts?: {
|
|
184
|
+
select?: ((search: TAllContext) => TSelected) | undefined;
|
|
185
|
+
} | undefined) => TSelected;
|
|
186
|
+
useRouteContext: <TSelected = TAllContext>(opts?: {
|
|
187
|
+
select?: ((search: TAllContext) => TSelected) | undefined;
|
|
188
|
+
} | undefined) => TSelected;
|
|
189
|
+
useSearch: <TSelected = TFullSearchSchema>(opts?: {
|
|
190
|
+
select?: ((search: TFullSearchSchema) => TSelected) | undefined;
|
|
191
|
+
} | undefined) => TSelected;
|
|
192
|
+
useParams: <TSelected = TAllParams>(opts?: {
|
|
193
|
+
select?: ((search: TAllParams) => TSelected) | undefined;
|
|
194
|
+
} | undefined) => TSelected;
|
|
195
|
+
useLoaderData: <TSelected = TLoaderData>(opts?: {
|
|
196
|
+
select?: ((search: TLoaderData) => TSelected) | undefined;
|
|
197
|
+
} | undefined) => TSelected;
|
|
188
198
|
}
|
|
189
199
|
export type AnyRootRoute = RootRoute<any, any, any>;
|
|
190
200
|
export declare function rootRouteWithContext<TRouterContext extends {}>(): <TSearchSchema extends Record<string, any> = {}, TRouteContext extends RouteContext = RouteContext, TLoaderData extends unknown = unknown>(options?: Omit<RouteOptions<AnyRoute, "__root__", "", TSearchSchema, TSearchSchema, {}, {}, TRouteContext, Assign<TRouterContext, TRouteContext>, TLoaderData>, "path" | "id" | "getParentRoute" | "stringifyParams" | "parseParams" | "caseSensitive"> | undefined) => RootRoute<TSearchSchema, TRouteContext, TRouterContext, unknown>;
|
|
@@ -232,11 +242,21 @@ export declare function createRouteMask<TRouteTree extends AnyRoute, TFrom exten
|
|
|
232
242
|
routeTree: TRouteTree;
|
|
233
243
|
} & ToSubOptions<TRouteTree, TFrom, TTo>): RouteMask<TRouteTree>;
|
|
234
244
|
export type RouteProps<TFullSearchSchema extends Record<string, any> = AnySearchSchema, TAllParams extends AnyPathParams = AnyPathParams, TAllContext extends Record<string, any> = AnyContext, TLoaderData extends any = unknown> = {
|
|
235
|
-
useMatch:
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
245
|
+
useMatch: <TSelected = TAllContext>(opts?: {
|
|
246
|
+
select?: (search: TAllContext) => TSelected;
|
|
247
|
+
}) => TSelected;
|
|
248
|
+
useRouteContext: <TSelected = TAllContext>(opts?: {
|
|
249
|
+
select?: (search: TAllContext) => TSelected;
|
|
250
|
+
}) => TSelected;
|
|
251
|
+
useSearch: <TSelected = TFullSearchSchema>(opts?: {
|
|
252
|
+
select?: (search: TFullSearchSchema) => TSelected;
|
|
253
|
+
}) => TSelected;
|
|
254
|
+
useParams: <TSelected = TAllParams>(opts?: {
|
|
255
|
+
select?: (search: TAllParams) => TSelected;
|
|
256
|
+
}) => TSelected;
|
|
257
|
+
useLoaderData: <TSelected = TLoaderData>(opts?: {
|
|
258
|
+
select?: (search: TLoaderData) => TSelected;
|
|
259
|
+
}) => TSelected;
|
|
240
260
|
};
|
|
241
261
|
export type ErrorRouteProps<TFullSearchSchema extends Record<string, any> = AnySearchSchema, TAllParams extends AnyPathParams = AnyPathParams, TAllContext extends Record<string, any> = AnyContext> = {
|
|
242
262
|
error: unknown;
|
package/build/types/router.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { RouterHistory } from '@tanstack/history';
|
|
4
|
+
import { Store } from '@tanstack/store';
|
|
4
5
|
import { AnySearchSchema, AnyRoute, AnyContext, AnyPathParams, RouteMask } from './route';
|
|
5
6
|
import { FullSearchSchema, RoutesById, RoutesByPath } from './routeInfo';
|
|
6
7
|
import { PickAsRequired, Updater, NonNullableUpdater } from './utils';
|
|
@@ -56,8 +57,10 @@ export interface RouterOptions<TRouteTree extends AnyRoute, TDehydrated extends
|
|
|
56
57
|
}
|
|
57
58
|
export interface RouterState<TRouteTree extends AnyRoute = AnyRoute> {
|
|
58
59
|
status: 'pending' | 'idle';
|
|
60
|
+
isLoading: boolean;
|
|
61
|
+
isTransitioning: boolean;
|
|
59
62
|
matches: RouteMatch<TRouteTree>[];
|
|
60
|
-
pendingMatches
|
|
63
|
+
pendingMatches?: RouteMatch<TRouteTree>[];
|
|
61
64
|
location: ParsedLocation<FullSearchSchema<TRouteTree>>;
|
|
62
65
|
resolvedLocation: ParsedLocation<FullSearchSchema<TRouteTree>>;
|
|
63
66
|
lastUpdated: number;
|
|
@@ -122,7 +125,7 @@ export declare class Router<TRouteTree extends AnyRoute = AnyRoute, TDehydrated
|
|
|
122
125
|
pendingMatches: AnyRouteMatch[];
|
|
123
126
|
injectedHtml: InjectedHtmlEntry[];
|
|
124
127
|
dehydratedData?: TDehydrated;
|
|
125
|
-
|
|
128
|
+
__store: Store<RouterState<TRouteTree>>;
|
|
126
129
|
options: PickAsRequired<RouterOptions<TRouteTree, TDehydrated>, 'stringifySearch' | 'parseSearch' | 'context'>;
|
|
127
130
|
history: RouterHistory;
|
|
128
131
|
latestLocation: ParsedLocation;
|
|
@@ -133,8 +136,8 @@ export declare class Router<TRouteTree extends AnyRoute = AnyRoute, TDehydrated
|
|
|
133
136
|
flatRoutes: AnyRoute[];
|
|
134
137
|
constructor(options: RouterConstructorOptions<TRouteTree, TDehydrated>);
|
|
135
138
|
startReactTransition: (fn: () => void) => void;
|
|
136
|
-
setState: (updater: NonNullableUpdater<RouterState<TRouteTree>>) => void;
|
|
137
139
|
update: (newOptions: RouterConstructorOptions<TRouteTree, TDehydrated>) => void;
|
|
140
|
+
get state(): RouterState<TRouteTree>;
|
|
138
141
|
buildRouteTree: () => void;
|
|
139
142
|
subscribe: <TType extends keyof RouterEvents>(eventType: TType, fn: ListenerFn<RouterEvents[TType]>) => () => void;
|
|
140
143
|
emit: (routerEvent: RouterEvent) => void;
|
|
@@ -2,4 +2,6 @@ import { AnyRoute } from './route';
|
|
|
2
2
|
import { RouteIds, RouteById, AllParams } 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
|
|
5
|
+
export declare function useParams<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TDefaultSelected = AllParams<TRouteTree> & RouteById<TRouteTree, TFrom>['types']['allParams'], TSelected = TDefaultSelected>(opts: StrictOrFrom<TFrom> & {
|
|
6
|
+
select?: (search: TDefaultSelected) => TSelected;
|
|
7
|
+
}): TSelected;
|
|
@@ -2,4 +2,6 @@ import { AnyRoute } 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>, TStrict extends boolean = true, TSearch = RouteById<TRouteTree, TFrom>['types']['fullSearchSchema']>(opts: StrictOrFrom<TFrom>
|
|
5
|
+
export declare function useSearch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TSearch = RouteById<TRouteTree, TFrom>['types']['fullSearchSchema'], TSelected = TSearch>(opts: StrictOrFrom<TFrom> & {
|
|
6
|
+
select?: (search: TSearch) => TSelected;
|
|
7
|
+
}): TStrict extends true ? TSelected : TSelected | undefined;
|
package/build/types/utils.d.ts
CHANGED
|
@@ -59,6 +59,8 @@ export type StrictOrFrom<TFrom> = {
|
|
|
59
59
|
strict: false;
|
|
60
60
|
};
|
|
61
61
|
export type RouteFromIdOrRoute<T, TRouteTree extends AnyRoute = RegisteredRouter['routeTree']> = T extends ParseRoute<TRouteTree> ? T : T extends RouteIds<TRouteTree> ? RoutesById<TRouteTree>[T] : T extends string ? RouteIds<TRouteTree> : never;
|
|
62
|
-
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TRouteContext = RouteById<TRouteTree, TFrom>['types']['allContext'], TSelected = TRouteContext>(opts: StrictOrFrom<TFrom>
|
|
62
|
+
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>, TStrict extends boolean = true, TRouteContext = RouteById<TRouteTree, TFrom>['types']['allContext'], TSelected = TRouteContext>(opts: StrictOrFrom<TFrom> & {
|
|
63
|
+
select?: (search: TRouteContext) => TSelected;
|
|
64
|
+
}): TStrict extends true ? TSelected : TSelected | undefined;
|
|
63
65
|
export declare const useLayoutEffect: typeof React.useLayoutEffect;
|
|
64
66
|
export declare function escapeJSON(jsonString: string): string;
|