1
1
import React from 'react' ;
2
2
3
- import { Route as ReactRoute , Routes , useNavigate , useParams as useRouterParams } from 'react-router' ;
3
+ import { Location } from 'history' ;
4
+ import { Outlet , Route as ReactRoute , Routes , useNavigate , useLocation as useReactLocation , useParams as useRouterParams } from 'react-router' ;
4
5
import { BrowserRouter , Link as ReactLink } from 'react-router-dom' ;
5
6
import { StaticRouter } from 'react-router-dom/server' ;
6
7
@@ -21,6 +22,11 @@ export const useNavigator = (): Navigator => {
21
22
} ;
22
23
} ;
23
24
25
+ export const useLocation = ( ) : Location => {
26
+ const reactLocation = useReactLocation ( ) ;
27
+ return reactLocation ;
28
+ } ;
29
+
24
30
export interface IRouterAuthManager {
25
31
getIsUserLoggedIn : ( ) => boolean ;
26
32
}
@@ -32,7 +38,7 @@ export const useRouterAuthManager = (): IRouterAuthManager | undefined => {
32
38
return authManager ;
33
39
} ;
34
40
35
- export interface IRouteProps < PagePropsType = Record < string , unknown > > {
41
+ export interface IRouteProps < PagePropsType = Record < string , string > > extends IMultiChildProps < IRouteProps > {
36
42
path ?: string ;
37
43
default ?: boolean ;
38
44
redirectIfAuth ?: string ;
@@ -94,6 +100,16 @@ export const SubRouter = (props: ISubRouterProps): React.ReactElement => {
94
100
) ;
95
101
} ;
96
102
103
+ export interface ISubRouterOutletProps {
104
+ }
105
+
106
+ // eslint-disable-next-line unused-imports/no-unused-vars
107
+ export const SubRouterOutlet = ( props : ISubRouterOutletProps ) : React . ReactElement => {
108
+ return (
109
+ < Outlet />
110
+ ) ;
111
+ } ;
112
+
97
113
export interface IRouterProps extends ISubRouterProps {
98
114
authManager ?: IRouterAuthManager ;
99
115
staticPath ?: string ;
@@ -102,7 +118,7 @@ export interface IRouterProps extends ISubRouterProps {
102
118
export const Router = ( props : IRouterProps ) : React . ReactElement => {
103
119
const internals = (
104
120
< RouterAuthManagerContext . Provider value = { props . authManager } >
105
- < SubRouter { ... props } >
121
+ < SubRouter >
106
122
{ props . children }
107
123
</ SubRouter >
108
124
</ RouterAuthManagerContext . Provider >
0 commit comments