@tanstack/react-router 1.0.1 → 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.
@@ -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'> & {
@@ -1688,7 +1688,10 @@
1688
1688
  }
1689
1689
 
1690
1690
  const preloadWarning = 'Error preloading route! ☝️';
1691
- function useLinkProps(options) {
1691
+ function useLinkProps({
1692
+ from,
1693
+ ...options
1694
+ }) {
1692
1695
  const router = useRouter();
1693
1696
  const matchPathname = useMatch({
1694
1697
  strict: false,
@@ -2510,7 +2513,7 @@
2510
2513
  };
2511
2514
  navigate = ({
2512
2515
  from,
2513
- to = '',
2516
+ to,
2514
2517
  ...rest
2515
2518
  }) => {
2516
2519
  // If this link simply reloads the current route,
@@ -2519,7 +2522,7 @@
2519
2522
  // If this `to` is a valid external URL, return
2520
2523
  // null for LinkUtils
2521
2524
  const toString = String(to);
2522
- const fromString = typeof from === 'undefined' ? from : String(from);
2525
+ // const fromString = from !== undefined ? String(from) : from
2523
2526
  let isExternal;
2524
2527
  try {
2525
2528
  new URL(`${toString}`);
@@ -2528,8 +2531,9 @@
2528
2531
  invariant(!isExternal, 'Attempting to navigate to external url with this.navigate!');
2529
2532
  return this.buildAndCommitLocation({
2530
2533
  ...rest,
2531
- from: fromString,
2532
- to: toString
2534
+ from,
2535
+ to
2536
+ // to: toString,
2533
2537
  });
2534
2538
  };
2535
2539
  loadMatches = async ({
@@ -3231,19 +3235,22 @@
3231
3235
  return children ?? null;
3232
3236
  }
3233
3237
 
3234
- function useNavigate(defaultOpts) {
3238
+ function useNavigate(_defaultOpts) {
3235
3239
  const {
3236
- navigate
3240
+ navigate,
3241
+ buildLocation
3237
3242
  } = useRouter();
3238
3243
  const matchPathname = useMatch({
3239
3244
  strict: false,
3240
3245
  select: s => s.pathname
3241
3246
  });
3242
- return React__namespace.useCallback(opts => {
3247
+ return React__namespace.useCallback(({
3248
+ from,
3249
+ ...rest
3250
+ }) => {
3243
3251
  return navigate({
3244
- from: opts?.to ? matchPathname : undefined,
3245
- ...defaultOpts,
3246
- ...opts
3252
+ from: rest?.to ? matchPathname : undefined,
3253
+ ...rest
3247
3254
  });
3248
3255
  }, []);
3249
3256
  }