grafana/public/app/features/manage-dashboards/state/selectors.ts
Torkel Ödegaard 1d689888b0
Prettier: Upgrade to 2 (#30387)
* Updated package json but not updated source files

* Update eslint plugin

* updated files
2021-01-20 07:59:48 +01:00

29 lines
797 B
TypeScript

import { NavModel } from '@grafana/data';
import { StoreState } from 'app/types';
import { getUrl } from 'app/core/selectors/location';
import { getNavModel } from 'app/core/selectors/navModel';
export const getDashboardNavModel = (state: StoreState): NavModel => {
const url = getUrl(state.location);
const navModel = getNavModel(state.navIndex, 'dashboards');
const nav = { ...navModel };
const node = nav.main.children?.find((item) => item.url === url);
if (node) {
nav.node = node;
}
// This needs to be copied to avoid mutating the store in a selector
nav.main.children = [...(navModel.main.children ?? [])];
for (const item of nav.main.children) {
item.active = false;
if (item.url === nav.node.url) {
item.active = true;
}
}
return nav;
};