@@ -311,6 +311,15 @@ export function useResolvedPath(
311
311
export function useRoutes (
312
312
routes : RouteObject [ ] ,
313
313
locationArg ?: Partial < Location > | string
314
+ ) : React . ReactElement | null {
315
+ return useRoutesImpl ( routes , locationArg ) ;
316
+ }
317
+
318
+ // Internal implementation with accept optional param for RouterProvider usage
319
+ export function useRoutesImpl (
320
+ routes : RouteObject [ ] ,
321
+ locationArg ?: Partial < Location > | string ,
322
+ dataRouterState ?: RemixRouter [ "state" ]
314
323
) : React . ReactElement | null {
315
324
invariant (
316
325
useInRouterContext ( ) ,
@@ -320,8 +329,6 @@ export function useRoutes(
320
329
) ;
321
330
322
331
let { navigator } = React . useContext ( NavigationContext ) ;
323
- let dataRouterContext = React . useContext ( DataRouterContext ) ;
324
- let dataRouterStateContext = React . useContext ( DataRouterStateContext ) ;
325
332
let { matches : parentMatches } = React . useContext ( RouteContext ) ;
326
333
let routeMatch = parentMatches [ parentMatches . length - 1 ] ;
327
334
let parentParams = routeMatch ? routeMatch . params : { } ;
@@ -434,10 +441,7 @@ export function useRoutes(
434
441
} )
435
442
) ,
436
443
parentMatches ,
437
- // Only pass along the dataRouterStateContext when we're rendering from the
438
- // RouterProvider layer. If routes is different then we're rendering from
439
- // a descendant <Routes> tree
440
- dataRouterContext ?. router . routes === routes ? dataRouterStateContext : null
444
+ dataRouterState
441
445
) ;
442
446
443
447
// When a user passes in a `locationArg`, the associated routes need to
0 commit comments