@tanstack/react-router 1.5.4 → 1.5.6

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.
Files changed (61) hide show
  1. package/build/cjs/Matches.js +15 -14
  2. package/build/cjs/Matches.js.map +1 -1
  3. package/build/cjs/RouterProvider.js +6 -27
  4. package/build/cjs/RouterProvider.js.map +1 -1
  5. package/build/cjs/awaited.js +2 -2
  6. package/build/cjs/awaited.js.map +1 -1
  7. package/build/cjs/index.js +11 -7
  8. package/build/cjs/index.js.map +1 -1
  9. package/build/cjs/link.js +4 -3
  10. package/build/cjs/link.js.map +1 -1
  11. package/build/cjs/router.js.map +1 -1
  12. package/build/cjs/routerContext.js +42 -0
  13. package/build/cjs/routerContext.js.map +1 -0
  14. package/build/cjs/scroll-restoration.js +3 -3
  15. package/build/cjs/scroll-restoration.js.map +1 -1
  16. package/build/cjs/useBlocker.js +2 -2
  17. package/build/cjs/useBlocker.js.map +1 -1
  18. package/build/cjs/useNavigate.js +3 -3
  19. package/build/cjs/useNavigate.js.map +1 -1
  20. package/build/cjs/useParams.js +2 -2
  21. package/build/cjs/useParams.js.map +1 -1
  22. package/build/cjs/useRouteContext.js +23 -0
  23. package/build/cjs/useRouteContext.js.map +1 -0
  24. package/build/cjs/useRouter.js +44 -0
  25. package/build/cjs/useRouter.js.map +1 -0
  26. package/build/cjs/useRouterState.js +24 -0
  27. package/build/cjs/useRouterState.js.map +1 -0
  28. package/build/cjs/utils.js +0 -8
  29. package/build/cjs/utils.js.map +1 -1
  30. package/build/esm/index.js +192 -188
  31. package/build/esm/index.js.map +1 -1
  32. package/build/stats-html.html +1 -1
  33. package/build/stats-react.json +582 -431
  34. package/build/types/RouterProvider.d.ts +2 -13
  35. package/build/types/index.d.ts +4 -1
  36. package/build/types/router.d.ts +6 -5
  37. package/build/types/routerContext.d.ts +3 -0
  38. package/build/types/useRouteContext.d.ts +7 -0
  39. package/build/types/useRouter.d.ts +5 -0
  40. package/build/types/useRouterState.d.ts +6 -0
  41. package/build/types/utils.d.ts +0 -6
  42. package/build/umd/index.development.js +367 -363
  43. package/build/umd/index.development.js.map +1 -1
  44. package/build/umd/index.production.js +1 -1
  45. package/build/umd/index.production.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/Matches.tsx +2 -1
  48. package/src/RouterProvider.tsx +8 -60
  49. package/src/awaited.tsx +1 -1
  50. package/src/index.tsx +4 -2
  51. package/src/link.tsx +8 -7
  52. package/src/router.ts +18 -5
  53. package/src/routerContext.tsx +11 -0
  54. package/src/scroll-restoration.tsx +1 -1
  55. package/src/useBlocker.tsx +1 -1
  56. package/src/useNavigate.tsx +1 -1
  57. package/src/useParams.tsx +1 -1
  58. package/src/useRouteContext.ts +24 -0
  59. package/src/useRouter.tsx +20 -0
  60. package/src/useRouterState.tsx +17 -0
  61. package/src/utils.ts +0 -24
@@ -1,11 +1,9 @@
1
1
  import * as React from 'react';
2
- import { NavigateOptions, ResolveRelativePath, ToOptions } from './link';
2
+ import { NavigateOptions, ToOptions } from './link';
3
3
  import { ParsedLocation } from './location';
4
4
  import { AnyRoute } from './route';
5
- import { RouteById, RoutePaths } from './routeInfo';
5
+ import { RoutePaths } from './routeInfo';
6
6
  import { RegisteredRouter, Router, RouterOptions, RouterState } from './router';
7
- import { NoInfer } from './utils';
8
- import { MatchRouteOptions } from './Matches';
9
7
  import { RouteMatch } from './Matches';
10
8
  export interface CommitLocationOptions {
11
9
  replace?: boolean;
@@ -19,20 +17,11 @@ export interface MatchLocation {
19
17
  from?: string;
20
18
  }
21
19
  export type NavigateFn<TRouteTree extends AnyRoute> = <TFrom extends RoutePaths<TRouteTree> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''>(opts: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>;
22
- export type MatchRouteFn<TRouteTree extends AnyRoute> = <TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>>(location: ToOptions<TRouteTree, TFrom, TTo>, opts?: MatchRouteOptions) => false | RouteById<TRouteTree, TResolved>['types']['allParams'];
23
20
  export type BuildLocationFn<TRouteTree extends AnyRoute> = (opts: ToOptions<TRouteTree>) => ParsedLocation;
24
21
  export type InjectedHtmlEntry = string | (() => Promise<string> | string);
25
- export declare let routerContext: React.Context<Router<any, Record<string, any>>>;
26
22
  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;
27
23
  export declare function getRouteMatch<TRouteTree extends AnyRoute>(state: RouterState<TRouteTree>, id: string): undefined | RouteMatch<TRouteTree>;
28
- export declare function useRouterState<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TSelected = RouterState<TRouteTree>>(opts?: {
29
- router?: Router<TRouteTree>;
30
- select: (state: RouterState<RegisteredRouter['routeTree']>) => TSelected;
31
- }): TSelected;
32
24
  export type RouterProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDehydrated extends Record<string, any> = Record<string, any>> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {
33
25
  router: Router<TRouteTree>;
34
26
  context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>;
35
27
  };
36
- export declare function useRouter<TRouteTree extends AnyRoute = RegisteredRouter['routeTree']>(opts?: {
37
- warn?: boolean;
38
- }): Router<TRouteTree>;
@@ -6,7 +6,6 @@ export * from './defer';
6
6
  export * from './CatchBoundary';
7
7
  export * from './fileRoute';
8
8
  export * from './history';
9
- export * from './index';
10
9
  export * from './lazyRouteComponent';
11
10
  export * from './link';
12
11
  export * from './location';
@@ -24,4 +23,8 @@ export * from './useBlocker';
24
23
  export * from './useNavigate';
25
24
  export * from './useParams';
26
25
  export * from './useSearch';
26
+ export * from './routerContext';
27
+ export * from './useRouteContext';
28
+ export * from './useRouter';
29
+ export * from './useRouterState';
27
30
  export * from './utils';
@@ -2,14 +2,15 @@
2
2
  import { HistoryState, RouterHistory } from '@tanstack/history';
3
3
  import { Store } from '@tanstack/store';
4
4
  import { AnySearchSchema, AnyRoute, AnyContext, RouteMask } from './route';
5
- import { FullSearchSchema, RoutesById, RoutesByPath } from './routeInfo';
5
+ import { FullSearchSchema, RouteById, RoutePaths, RoutesById, RoutesByPath } from './routeInfo';
6
6
  import { PickAsRequired, Updater, NonNullableUpdater, Timeout } from './utils';
7
7
  import { RouteComponent } from './route';
8
- import { AnyRouteMatch, RouteMatch } from './Matches';
8
+ import { AnyRouteMatch, MatchRouteOptions, RouteMatch } from './Matches';
9
9
  import { ParsedLocation } from './location';
10
10
  import { SearchSerializer, SearchParser } from './searchParams';
11
- import { BuildLocationFn, CommitLocationOptions, InjectedHtmlEntry, MatchRouteFn, NavigateFn } from './RouterProvider';
12
- import { ToOptions } from './link';
11
+ import { BuildLocationFn, CommitLocationOptions, InjectedHtmlEntry, NavigateFn } from './RouterProvider';
12
+ import { ResolveRelativePath, ToOptions } from './link';
13
+ import { NoInfer } from '@tanstack/react-store';
13
14
  declare global {
14
15
  interface Window {
15
16
  __TSR_DEHYDRATED__?: HydrationCtx;
@@ -171,7 +172,7 @@ export declare class Router<TRouteTree extends AnyRoute = AnyRoute, TDehydrated
171
172
  load: () => Promise<void>;
172
173
  cleanCache: () => void;
173
174
  preloadRoute: (navigateOpts?: ToOptions<TRouteTree>) => Promise<RouteMatch<AnyRoute, any>[]>;
174
- matchRoute: MatchRouteFn<TRouteTree>;
175
+ matchRoute: <TFrom extends RoutePaths<TRouteTree> = "/", TTo extends string = "", TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>>(location: ToOptions<TRouteTree, TFrom, TTo>, opts?: MatchRouteOptions) => false | RouteById<TRouteTree, TResolved>["types"]["allParams"];
175
176
  injectHtml: (html: string | (() => Promise<string> | string)) => Promise<void>;
176
177
  dehydrateData: <T>(key: any, getData: T | (() => T | Promise<T>)) => () => T | undefined;
177
178
  hydrateData: <T extends unknown = unknown>(key: any) => T | undefined;
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { Router } from './router';
3
+ export declare let routerContext: React.Context<Router<any, Record<string, any>>>;
@@ -0,0 +1,7 @@
1
+ import { AnyRoute } from './route';
2
+ import { RouteIds, RouteById } from './routeInfo';
3
+ import { RegisteredRouter } from './router';
4
+ import { StrictOrFrom } from './utils';
5
+ 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> & {
6
+ select?: (search: TRouteContext) => TSelected;
7
+ }): TSelected;
@@ -0,0 +1,5 @@
1
+ import { AnyRoute } from './route';
2
+ import { RegisteredRouter, Router } from './router';
3
+ export declare function useRouter<TRouteTree extends AnyRoute = RegisteredRouter['routeTree']>(opts?: {
4
+ warn?: boolean;
5
+ }): Router<TRouteTree>;
@@ -0,0 +1,6 @@
1
+ import { AnyRoute } from './route';
2
+ import { RegisteredRouter, Router, RouterState } from './router';
3
+ export declare function useRouterState<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TSelected = RouterState<TRouteTree>>(opts?: {
4
+ router?: Router<TRouteTree>;
5
+ select: (state: RouterState<RegisteredRouter['routeTree']>) => TSelected;
6
+ }): TSelected;
@@ -1,7 +1,4 @@
1
1
  import * as React from 'react';
2
- import { AnyRoute } from './route';
3
- import { RouteIds, RouteById } from './routeInfo';
4
- import { RegisteredRouter } from './router';
5
2
  export type NoInfer<T> = [T][T extends any ? 0 : never];
6
3
  export type IsAny<T, Y, N = T> = 1 extends 0 & T ? Y : N;
7
4
  export type PickAsRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
@@ -44,9 +41,6 @@ export type StrictOrFrom<TFrom> = {
44
41
  from?: never;
45
42
  strict: false;
46
43
  };
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> & {
48
- select?: (search: TRouteContext) => TSelected;
49
- }): TSelected;
50
44
  export declare const useLayoutEffect: typeof React.useLayoutEffect;
51
45
  export declare function escapeJSON(jsonString: string): string;
52
46
  export {};