|
|
@@ -20,9 +20,8 @@ import Exception403 from '../pages/Exception/403';
|
|
|
|
|
|
const { Content } = Layout;
|
|
|
|
|
|
-// Conversion router to menu.
|
|
|
-function formatter(data, parentAuthority, parentName) {
|
|
|
- return data
|
|
|
+function mapRoutesToMenu(routes, parentAuthority, parentName) {
|
|
|
+ return routes
|
|
|
.map(item => {
|
|
|
if (!item.name || !item.path) {
|
|
|
return null;
|
|
|
@@ -42,7 +41,7 @@ function formatter(data, parentAuthority, parentName) {
|
|
|
authority: item.authority || parentAuthority,
|
|
|
};
|
|
|
if (item.routes) {
|
|
|
- const children = formatter(item.routes, item.authority, locale);
|
|
|
+ const children = mapRoutesToMenu(item.routes, item.authority, locale);
|
|
|
// Reduce memory usage
|
|
|
result.children = children;
|
|
|
}
|
|
|
@@ -52,7 +51,7 @@ function formatter(data, parentAuthority, parentName) {
|
|
|
.filter(item => item);
|
|
|
}
|
|
|
|
|
|
-const memoizeOneFormatter = memoizeOne(formatter, isEqual);
|
|
|
+const memoizedMapRoutesToMenu = memoizeOne(mapRoutesToMenu, isEqual);
|
|
|
|
|
|
const query = {
|
|
|
'screen-xs': {
|
|
|
@@ -145,7 +144,7 @@ class BasicLayout extends React.PureComponent {
|
|
|
const {
|
|
|
route: { routes, authority },
|
|
|
} = this.props;
|
|
|
- return memoizeOneFormatter(routes, authority);
|
|
|
+ return memoizedMapRoutesToMenu(routes, authority);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -154,16 +153,16 @@ class BasicLayout extends React.PureComponent {
|
|
|
*/
|
|
|
getBreadcrumbNameMap() {
|
|
|
const routerMap = {};
|
|
|
- const mergeMenuAndRouter = data => {
|
|
|
+ const flattenMenuData = data => {
|
|
|
data.forEach(menuItem => {
|
|
|
if (menuItem.children) {
|
|
|
- mergeMenuAndRouter(menuItem.children);
|
|
|
+ flattenMenuData(menuItem.children);
|
|
|
}
|
|
|
// Reduce memory usage
|
|
|
routerMap[menuItem.path] = menuItem;
|
|
|
});
|
|
|
};
|
|
|
- mergeMenuAndRouter(this.getMenuData());
|
|
|
+ flattenMenuData(this.getMenuData());
|
|
|
return routerMap;
|
|
|
}
|
|
|
|