Skip to content

Commit 90244e2

Browse files
committed
useRoute: better types
- no route ID -> { loaderData: unknown, actionData: unknown } - actionData gets `| undefined` added to it - `root` route is guaranteed to exist
1 parent 5e013e6 commit 90244e2

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

packages/react-router/lib/hooks.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,14 +1849,18 @@ type UseRouteArgs = [] | [routeId: keyof RouteModules];
18491849

18501850
// prettier-ignore
18511851
type UseRouteResult<Args extends UseRouteArgs> =
1852-
Args extends [] ? unknown :
1852+
Args extends [] ? UseRoute<unknown> :
18531853
Args extends ["root"] ? UseRoute<"root"> :
18541854
Args extends [infer RouteId extends keyof RouteModules] ? UseRoute<RouteId> | undefined :
18551855
never;
18561856

1857-
type UseRoute<RouteId extends keyof RouteModules> = {
1858-
loaderData: GetLoaderData<RouteModules[RouteId]>;
1859-
actionData: GetActionData<RouteModules[RouteId]>;
1857+
type UseRoute<RouteId extends keyof RouteModules | unknown> = {
1858+
loaderData: RouteId extends keyof RouteModules
1859+
? GetLoaderData<RouteModules[RouteId]>
1860+
: unknown;
1861+
actionData: RouteId extends keyof RouteModules
1862+
? GetActionData<RouteModules[RouteId]> | undefined
1863+
: unknown;
18601864
};
18611865

18621866
export function useRoute<Args extends UseRouteArgs>(

0 commit comments

Comments
 (0)