@@ -5,7 +5,7 @@ import { selectActiveFirstLevelMenuKey, setActiveFirstLevelMenuKey } from '@/fea
5
5
import { useLang } from '../lang' ;
6
6
import { useRoute , useRouter } from '../router' ;
7
7
8
- import { filterRoutesToMenus , getActiveFirstLevelMenuKey } from './MenuUtil' ;
8
+ import { filterRoutesToMenus , getActiveFirstLevelMenuKey , getSelectKey } from './MenuUtil' ;
9
9
import { MixMenuContext } from './menuContext' ;
10
10
11
11
const MenuProvider : FC < PropsWithChildren > = ( { children } ) => {
@@ -17,6 +17,8 @@ const MenuProvider: FC<PropsWithChildren> = ({ children }) => {
17
17
18
18
const { locale } = useLang ( ) ;
19
19
20
+ const activeFirstLevelMenuKey = useAppSelector ( selectActiveFirstLevelMenuKey ) ;
21
+
20
22
const menus = useMemo (
21
23
( ) => filterRoutesToMenus ( router . reactRouter . routes . find ( r => r . id === '(base)' ) ?. children || [ ] ) ,
22
24
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -28,33 +30,17 @@ const MenuProvider: FC<PropsWithChildren> = ({ children }) => {
28
30
return rest ;
29
31
} ) as App . Global . Menu [ ] ;
30
32
31
- const activeFirstLevelMenuKey = useAppSelector ( selectActiveFirstLevelMenuKey ) ;
32
-
33
33
const childLevelMenus = menus . find ( menu => menu . key === activeFirstLevelMenuKey ) ?. children as App . Global . Menu [ ] ;
34
34
35
- const selectKey = ( ( ) => {
36
- const { activeMenu, hideInMenu } = route . handle ;
37
-
38
- const name = route . pathname as string ;
39
-
40
- const routeName = ( hideInMenu ? activeMenu : name ) || name ;
41
-
42
- return [ routeName ] ;
43
- } ) ( ) ;
35
+ const selectKey = getSelectKey ( route ) ;
44
36
45
37
/** - 可以手动指定菜单或者是默认当前路由的一级菜单 */
46
38
function changeActiveFirstLevelMenuKey ( key ?: string ) {
47
- let routeKey = key ;
48
-
49
- if ( ! routeKey ) {
50
- routeKey = getActiveFirstLevelMenuKey ( route ) ;
51
- }
39
+ const routeKey = key || getActiveFirstLevelMenuKey ( route ) ;
52
40
53
41
dispatch ( setActiveFirstLevelMenuKey ( routeKey || '' ) ) ;
54
42
}
55
43
56
- console . log ( 'menus' , menus , childLevelMenus , activeFirstLevelMenuKey ) ;
57
-
58
44
const mixMenuContext = {
59
45
activeFirstLevelMenuKey,
60
46
allMenus : menus ,
0 commit comments