@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.
- package/build/cjs/link.js +4 -1
- package/build/cjs/link.js.map +1 -1
- package/build/cjs/router.js +5 -4
- package/build/cjs/router.js.map +1 -1
- package/build/cjs/useNavigate.js +9 -6
- package/build/cjs/useNavigate.js.map +1 -1
- package/build/esm/index.js +18 -11
- 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/link.d.ts +1 -1
- package/build/types/useNavigate.d.ts +2 -2
- package/build/umd/index.development.js +18 -11
- 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/link.tsx +13 -7
- package/src/router.ts +5 -4
- package/src/useNavigate.tsx +10 -8
package/build/types/link.d.ts
CHANGED
|
@@ -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> = '/'>(
|
|
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 = "">(
|
|
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(
|
|
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 =
|
|
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
|
|
2532
|
-
to
|
|
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(
|
|
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(
|
|
3247
|
+
return React__namespace.useCallback(({
|
|
3248
|
+
from,
|
|
3249
|
+
...rest
|
|
3250
|
+
}) => {
|
|
3243
3251
|
return navigate({
|
|
3244
|
-
from:
|
|
3245
|
-
...
|
|
3246
|
-
...opts
|
|
3252
|
+
from: rest?.to ? matchPathname : undefined,
|
|
3253
|
+
...rest
|
|
3247
3254
|
});
|
|
3248
3255
|
}, []);
|
|
3249
3256
|
}
|