@tanstack/react-router 1.0.0 → 1.0.2

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 (147) hide show
  1. package/build/cjs/RouterProvider.js +3 -1
  2. package/build/cjs/RouterProvider.js.map +1 -1
  3. package/build/cjs/link.js +4 -1
  4. package/build/cjs/link.js.map +1 -1
  5. package/build/cjs/router.js +5 -4
  6. package/build/cjs/router.js.map +1 -1
  7. package/build/cjs/useNavigate.js +9 -6
  8. package/build/cjs/useNavigate.js.map +1 -1
  9. package/build/esm/index.js +21 -12
  10. package/build/esm/index.js.map +1 -1
  11. package/build/stats-html.html +1 -1
  12. package/build/stats-react.json +367 -367
  13. package/build/types/index.d.ts +24 -932
  14. package/build/types/link.d.ts +1 -1
  15. package/build/types/useNavigate.d.ts +2 -2
  16. package/build/umd/index.development.js +21 -12
  17. package/build/umd/index.development.js.map +1 -1
  18. package/build/umd/index.production.js +1 -1
  19. package/build/umd/index.production.js.map +1 -1
  20. package/package.json +2 -2
  21. package/src/RouterProvider.tsx +3 -1
  22. package/src/link.tsx +13 -7
  23. package/src/router.ts +5 -4
  24. package/src/useNavigate.tsx +10 -8
  25. package/build/cjs/_virtual/with-selector.development.js +0 -16
  26. package/build/cjs/_virtual/with-selector.development.js.map +0 -1
  27. package/build/cjs/_virtual/with-selector.js +0 -16
  28. package/build/cjs/_virtual/with-selector.js.map +0 -1
  29. package/build/cjs/_virtual/with-selector.production.min.js +0 -16
  30. package/build/cjs/_virtual/with-selector.production.min.js.map +0 -1
  31. package/build/cjs/build/esm/index.js +0 -79
  32. package/build/cjs/build/esm/index.js.map +0 -1
  33. package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js +0 -47
  34. package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js.map +0 -1
  35. package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js +0 -70
  36. package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js.map +0 -1
  37. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -188
  38. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  39. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -39
  40. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  41. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js +0 -26
  42. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  43. package/build/cjs/packages/react-router/src/CatchBoundary.js +0 -123
  44. package/build/cjs/packages/react-router/src/CatchBoundary.js.map +0 -1
  45. package/build/cjs/packages/react-router/src/Matches.js +0 -235
  46. package/build/cjs/packages/react-router/src/Matches.js.map +0 -1
  47. package/build/cjs/packages/react-router/src/RouterProvider.js +0 -144
  48. package/build/cjs/packages/react-router/src/RouterProvider.js.map +0 -1
  49. package/build/cjs/packages/react-router/src/awaited.js +0 -43
  50. package/build/cjs/packages/react-router/src/awaited.js.map +0 -1
  51. package/build/cjs/packages/react-router/src/defer.js +0 -37
  52. package/build/cjs/packages/react-router/src/defer.js.map +0 -1
  53. package/build/cjs/packages/react-router/src/fileRoute.js +0 -27
  54. package/build/cjs/packages/react-router/src/fileRoute.js.map +0 -1
  55. package/build/cjs/packages/react-router/src/index.js +0 -61
  56. package/build/cjs/packages/react-router/src/index.js.map +0 -1
  57. package/build/cjs/packages/react-router/src/lazyRouteComponent.js +0 -54
  58. package/build/cjs/packages/react-router/src/lazyRouteComponent.js.map +0 -1
  59. package/build/cjs/packages/react-router/src/link.js +0 -148
  60. package/build/cjs/packages/react-router/src/link.js.map +0 -1
  61. package/build/cjs/packages/react-router/src/path.js +0 -209
  62. package/build/cjs/packages/react-router/src/path.js.map +0 -1
  63. package/build/cjs/packages/react-router/src/qss.js +0 -63
  64. package/build/cjs/packages/react-router/src/qss.js.map +0 -1
  65. package/build/cjs/packages/react-router/src/react.js +0 -634
  66. package/build/cjs/packages/react-router/src/react.js.map +0 -1
  67. package/build/cjs/packages/react-router/src/redirects.js +0 -25
  68. package/build/cjs/packages/react-router/src/redirects.js.map +0 -1
  69. package/build/cjs/packages/react-router/src/route.js +0 -134
  70. package/build/cjs/packages/react-router/src/route.js.map +0 -1
  71. package/build/cjs/packages/react-router/src/router.js +0 -1111
  72. package/build/cjs/packages/react-router/src/router.js.map +0 -1
  73. package/build/cjs/packages/react-router/src/scroll-restoration.js +0 -53
  74. package/build/cjs/packages/react-router/src/scroll-restoration.js.map +0 -1
  75. package/build/cjs/packages/react-router/src/searchParams.js +0 -81
  76. package/build/cjs/packages/react-router/src/searchParams.js.map +0 -1
  77. package/build/cjs/packages/react-router/src/useBlocker.js +0 -61
  78. package/build/cjs/packages/react-router/src/useBlocker.js.map +0 -1
  79. package/build/cjs/packages/react-router/src/useNavigate.js +0 -75
  80. package/build/cjs/packages/react-router/src/useNavigate.js.map +0 -1
  81. package/build/cjs/packages/react-router/src/useParams.js +0 -26
  82. package/build/cjs/packages/react-router/src/useParams.js.map +0 -1
  83. package/build/cjs/packages/react-router/src/useSearch.js +0 -25
  84. package/build/cjs/packages/react-router/src/useSearch.js.map +0 -1
  85. package/build/cjs/packages/react-router/src/utils.js +0 -239
  86. package/build/cjs/packages/react-router/src/utils.js.map +0 -1
  87. package/build/cjs/react/CatchBoundary.js +0 -123
  88. package/build/cjs/react/CatchBoundary.js.map +0 -1
  89. package/build/cjs/react/awaited.js +0 -43
  90. package/build/cjs/react/awaited.js.map +0 -1
  91. package/build/cjs/react/defer.js +0 -37
  92. package/build/cjs/react/defer.js.map +0 -1
  93. package/build/cjs/react.js +0 -650
  94. package/build/cjs/react.js.map +0 -1
  95. package/build/cjs/routerConfig.js +0 -209
  96. package/build/cjs/routerConfig.js.map +0 -1
  97. package/build/cjs/src/CatchBoundary.js +0 -126
  98. package/build/cjs/src/CatchBoundary.js.map +0 -1
  99. package/build/cjs/src/Matches.js +0 -235
  100. package/build/cjs/src/Matches.js.map +0 -1
  101. package/build/cjs/src/RouterProvider.js +0 -1051
  102. package/build/cjs/src/RouterProvider.js.map +0 -1
  103. package/build/cjs/src/awaited.js +0 -45
  104. package/build/cjs/src/awaited.js.map +0 -1
  105. package/build/cjs/src/defer.js +0 -39
  106. package/build/cjs/src/defer.js.map +0 -1
  107. package/build/cjs/src/fileRoute.js +0 -29
  108. package/build/cjs/src/fileRoute.js.map +0 -1
  109. package/build/cjs/src/index.js +0 -134
  110. package/build/cjs/src/index.js.map +0 -1
  111. package/build/cjs/src/lazyRouteComponent.js +0 -57
  112. package/build/cjs/src/lazyRouteComponent.js.map +0 -1
  113. package/build/cjs/src/link.js +0 -151
  114. package/build/cjs/src/link.js.map +0 -1
  115. package/build/cjs/src/path.js +0 -211
  116. package/build/cjs/src/path.js.map +0 -1
  117. package/build/cjs/src/qss.js +0 -65
  118. package/build/cjs/src/qss.js.map +0 -1
  119. package/build/cjs/src/redirects.js +0 -27
  120. package/build/cjs/src/redirects.js.map +0 -1
  121. package/build/cjs/src/route.js +0 -139
  122. package/build/cjs/src/route.js.map +0 -1
  123. package/build/cjs/src/router.js +0 -203
  124. package/build/cjs/src/router.js.map +0 -1
  125. package/build/cjs/src/scroll-restoration.js +0 -186
  126. package/build/cjs/src/scroll-restoration.js.map +0 -1
  127. package/build/cjs/src/searchParams.js +0 -83
  128. package/build/cjs/src/searchParams.js.map +0 -1
  129. package/build/cjs/src/useBlocker.js +0 -64
  130. package/build/cjs/src/useBlocker.js.map +0 -1
  131. package/build/cjs/src/useNavigate.js +0 -78
  132. package/build/cjs/src/useNavigate.js.map +0 -1
  133. package/build/cjs/src/useParams.js +0 -28
  134. package/build/cjs/src/useParams.js.map +0 -1
  135. package/build/cjs/src/useSearch.js +0 -27
  136. package/build/cjs/src/useSearch.js.map +0 -1
  137. package/build/cjs/src/utils.js +0 -230
  138. package/build/cjs/src/utils.js.map +0 -1
  139. package/build/cjs/useStore.js +0 -99
  140. package/build/cjs/useStore.js.map +0 -1
  141. package/build/types/RouteMatch.d.ts +0 -23
  142. package/build/types/injectHtml.d.ts +0 -0
  143. package/build/types/react/CatchBoundary.d.ts +0 -33
  144. package/build/types/react/awaited.d.ts +0 -9
  145. package/build/types/react/defer.d.ts +0 -19
  146. package/build/types/react.d.ts +0 -141
  147. package/build/types/useStore.d.ts +0 -12
@@ -85,7 +85,7 @@ export type CheckIdError<TRouteTree extends AnyRoute, TInvalids> = {
85
85
  'Valid Route IDs': RouteIds<TRouteTree>;
86
86
  };
87
87
  export type ResolveRelativePath<TFrom, TTo = '.'> = TFrom extends string ? TTo extends string ? TTo extends '.' ? TFrom : TTo extends `./` ? Join<[TFrom, '/']> : TTo extends `./${infer TRest}` ? ResolveRelativePath<TFrom, TRest> : TTo extends `/${infer TRest}` ? TTo : Split<TTo> extends ['..', ...infer ToRest] ? Split<TFrom> extends [...infer FromRest, infer FromTail] ? ToRest extends ['/'] ? Join<[...FromRest, '/']> : ResolveRelativePath<Join<FromRest>, Join<ToRest>> : never : Split<TTo> extends ['.', ...infer ToRest] ? ToRest extends ['/'] ? Join<[TFrom, '/']> : ResolveRelativePath<TFrom, Join<ToRest>> : CleanPath<Join<['/', ...Split<TFrom>, ...Split<TTo>]>> : never : never;
88
- export declare function useLinkProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''>(options: UseLinkPropsOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>): React.AnchorHTMLAttributes<HTMLAnchorElement>;
88
+ export declare function useLinkProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''>({ from, ...options }: UseLinkPropsOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>): React.AnchorHTMLAttributes<HTMLAnchorElement>;
89
89
  export interface LinkComponent<TProps extends Record<string, any> = {}> {
90
90
  <TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''>(props: LinkProps<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> & TProps & React.RefAttributes<HTMLAnchorElement>): ReactNode;
91
91
  }
@@ -3,9 +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
- export declare function useNavigate<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDefaultFrom extends RoutePaths<TRouteTree> = '/'>(defaultOpts?: {
6
+ export declare function useNavigate<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDefaultFrom extends RoutePaths<TRouteTree> = '/'>(_defaultOpts?: {
7
7
  from?: TDefaultFrom;
8
- }): <TFrom extends RoutePaths<TRouteTree> = TDefaultFrom, TTo extends string = "", TMaskFrom extends RoutePaths<TRouteTree> = "/", TMaskTo extends string = "">(opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> | undefined) => Promise<void>;
8
+ }): <TFrom extends RoutePaths<TRouteTree> = TDefaultFrom, TTo extends string = "", TMaskFrom extends RoutePaths<TRouteTree> = "/", TMaskTo extends string = "">({ from, ...rest }: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>;
9
9
  export declare function Navigate<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''>(props: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>): null;
10
10
  export type UseLinkPropsOptions<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''> = ActiveLinkOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>;
11
11
  export type LinkProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> = '/', TMaskTo extends string = ''> = ActiveLinkOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {
@@ -1125,6 +1125,7 @@
1125
1125
  return provider;
1126
1126
  }
1127
1127
  function Transitioner() {
1128
+ const mountLoadCount = React__namespace.useRef(0);
1128
1129
  const router = useRouter();
1129
1130
  const routerState = useRouterState({
1130
1131
  select: s => pick(s, ['isLoading', 'location', 'resolvedLocation', 'isTransitioning'])
@@ -1202,7 +1203,8 @@
1202
1203
  }
1203
1204
  }, [routerState.isTransitioning, isTransitioning, routerState.isLoading, routerState.resolvedLocation, routerState.location]);
1204
1205
  useLayoutEffect$1(() => {
1205
- if (!window.__TSR_DEHYDRATED__) {
1206
+ if (!window.__TSR_DEHYDRATED__ && !mountLoadCount.current) {
1207
+ mountLoadCount.current++;
1206
1208
  tryLoad();
1207
1209
  }
1208
1210
  }, []);
@@ -1686,7 +1688,10 @@
1686
1688
  }
1687
1689
 
1688
1690
  const preloadWarning = 'Error preloading route! ☝️';
1689
- function useLinkProps(options) {
1691
+ function useLinkProps({
1692
+ from,
1693
+ ...options
1694
+ }) {
1690
1695
  const router = useRouter();
1691
1696
  const matchPathname = useMatch({
1692
1697
  strict: false,
@@ -2508,7 +2513,7 @@
2508
2513
  };
2509
2514
  navigate = ({
2510
2515
  from,
2511
- to = '',
2516
+ to,
2512
2517
  ...rest
2513
2518
  }) => {
2514
2519
  // If this link simply reloads the current route,
@@ -2517,7 +2522,7 @@
2517
2522
  // If this `to` is a valid external URL, return
2518
2523
  // null for LinkUtils
2519
2524
  const toString = String(to);
2520
- const fromString = typeof from === 'undefined' ? from : String(from);
2525
+ // const fromString = from !== undefined ? String(from) : from
2521
2526
  let isExternal;
2522
2527
  try {
2523
2528
  new URL(`${toString}`);
@@ -2526,8 +2531,9 @@
2526
2531
  invariant(!isExternal, 'Attempting to navigate to external url with this.navigate!');
2527
2532
  return this.buildAndCommitLocation({
2528
2533
  ...rest,
2529
- from: fromString,
2530
- to: toString
2534
+ from,
2535
+ to
2536
+ // to: toString,
2531
2537
  });
2532
2538
  };
2533
2539
  loadMatches = async ({
@@ -3229,19 +3235,22 @@
3229
3235
  return children ?? null;
3230
3236
  }
3231
3237
 
3232
- function useNavigate(defaultOpts) {
3238
+ function useNavigate(_defaultOpts) {
3233
3239
  const {
3234
- navigate
3240
+ navigate,
3241
+ buildLocation
3235
3242
  } = useRouter();
3236
3243
  const matchPathname = useMatch({
3237
3244
  strict: false,
3238
3245
  select: s => s.pathname
3239
3246
  });
3240
- return React__namespace.useCallback(opts => {
3247
+ return React__namespace.useCallback(({
3248
+ from,
3249
+ ...rest
3250
+ }) => {
3241
3251
  return navigate({
3242
- from: opts?.to ? matchPathname : undefined,
3243
- ...defaultOpts,
3244
- ...opts
3252
+ from: rest?.to ? matchPathname : undefined,
3253
+ ...rest
3245
3254
  });
3246
3255
  }, []);
3247
3256
  }