navModel.ts 948 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { NavModel, NavModelItem, NavIndex } from 'app/types';
  2. function getNotFoundModel(): NavModel {
  3. const node: NavModelItem = {
  4. id: 'not-found',
  5. text: 'Page not found',
  6. icon: 'fa fa-fw fa-warning',
  7. subTitle: '404 Error',
  8. url: 'not-found',
  9. };
  10. return {
  11. node: node,
  12. main: node,
  13. };
  14. }
  15. export function getNavModel(navIndex: NavIndex, id: string, fallback?: NavModel): NavModel {
  16. if (navIndex[id]) {
  17. const node = navIndex[id];
  18. const main = {
  19. ...node.parentItem,
  20. };
  21. main.children = main.children.map(item => {
  22. return {
  23. ...item,
  24. active: item.url === node.url,
  25. };
  26. });
  27. return {
  28. node: node,
  29. main: main,
  30. };
  31. }
  32. if (fallback) {
  33. return fallback;
  34. }
  35. return getNotFoundModel();
  36. }
  37. export const getTitleFromNavModel = (navModel: NavModel) => {
  38. return `${navModel.main.text}${navModel.node.text ? ': ' + navModel.node.text : ''}`;
  39. };