Skip to content

Commit 7437ecf

Browse files
committed
optimize: 优化代码
1 parent 3dc6c59 commit 7437ecf

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

src/features/menu/MenuProvider.tsx

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { selectActiveFirstLevelMenuKey, setActiveFirstLevelMenuKey } from '@/fea
55
import { useLang } from '../lang';
66
import { useRoute, useRouter } from '../router';
77

8-
import { filterRoutesToMenus, getActiveFirstLevelMenuKey } from './MenuUtil';
8+
import { filterRoutesToMenus, getActiveFirstLevelMenuKey, getSelectKey } from './MenuUtil';
99
import { MixMenuContext } from './menuContext';
1010

1111
const MenuProvider: FC<PropsWithChildren> = ({ children }) => {
@@ -17,6 +17,8 @@ const MenuProvider: FC<PropsWithChildren> = ({ children }) => {
1717

1818
const { locale } = useLang();
1919

20+
const activeFirstLevelMenuKey = useAppSelector(selectActiveFirstLevelMenuKey);
21+
2022
const menus = useMemo(
2123
() => filterRoutesToMenus(router.reactRouter.routes.find(r => r.id === '(base)')?.children || []),
2224
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -28,33 +30,17 @@ const MenuProvider: FC<PropsWithChildren> = ({ children }) => {
2830
return rest;
2931
}) as App.Global.Menu[];
3032

31-
const activeFirstLevelMenuKey = useAppSelector(selectActiveFirstLevelMenuKey);
32-
3333
const childLevelMenus = menus.find(menu => menu.key === activeFirstLevelMenuKey)?.children as App.Global.Menu[];
3434

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);
4436

4537
/** - 可以手动指定菜单或者是默认当前路由的一级菜单 */
4638
function changeActiveFirstLevelMenuKey(key?: string) {
47-
let routeKey = key;
48-
49-
if (!routeKey) {
50-
routeKey = getActiveFirstLevelMenuKey(route);
51-
}
39+
const routeKey = key || getActiveFirstLevelMenuKey(route);
5240

5341
dispatch(setActiveFirstLevelMenuKey(routeKey || ''));
5442
}
5543

56-
console.log('menus', menus, childLevelMenus, activeFirstLevelMenuKey);
57-
5844
const mixMenuContext = {
5945
activeFirstLevelMenuKey,
6046
allMenus: menus,

src/features/menu/MenuUtil.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,13 @@ export function mergeMenus(menus: App.Global.Menu[], newMenus: App.Global.Menu[]
120120

121121
return menus;
122122
}
123+
124+
export function getSelectKey(route: Router.Route) {
125+
const { activeMenu, hideInMenu } = route.handle;
126+
127+
const name = route.pathname as string;
128+
129+
const routeName = (hideInMenu ? activeMenu : name) || name;
130+
131+
return [routeName];
132+
}

0 commit comments

Comments
 (0)