grafana/public/app/core/selectors/navModel.ts

40 lines
741 B
TypeScript
Raw Normal View History

import { NavModel, NavModelItem, NavIndex } from 'app/types';
function getNotFoundModel(): NavModel {
2018-09-07 23:55:38 +08:00
const node: NavModelItem = {
id: 'not-found',
text: 'Page not found',
icon: 'fa fa-fw fa-warning',
subTitle: '404 Error',
url: 'not-found',
};
return {
node: node,
main: node,
};
}
2018-09-03 02:36:03 +08:00
export function getNavModel(navIndex: NavIndex, id: string): NavModel {
if (navIndex[id]) {
const node = navIndex[id];
const main = {
...node.parentItem,
};
main.children = main.children.map(item => {
return {
...item,
active: item.url === node.url,
};
});
return {
node: node,
main: main,
};
} else {
return getNotFoundModel();
}
}