mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
* Page: Pages that have hideFromBreadcrumbs set to true should not be added to page Title * Updated test
38 lines
933 B
TypeScript
38 lines
933 B
TypeScript
import { useEffect } from 'react';
|
|
|
|
import { NavModel, NavModelItem } from '@grafana/data';
|
|
|
|
import { Branding } from '../Branding/Branding';
|
|
|
|
export function usePageTitle(navModel?: NavModel, pageNav?: NavModelItem) {
|
|
useEffect(() => {
|
|
const parts: string[] = [];
|
|
if (pageNav) {
|
|
if (pageNav.children) {
|
|
const activePage = pageNav.children.find((x) => x.active);
|
|
if (activePage) {
|
|
addTitleSegment(parts, activePage);
|
|
}
|
|
}
|
|
addTitleSegment(parts, pageNav);
|
|
}
|
|
|
|
if (navModel) {
|
|
if (navModel.node !== navModel.main) {
|
|
addTitleSegment(parts, navModel.node);
|
|
}
|
|
addTitleSegment(parts, navModel.main);
|
|
}
|
|
|
|
parts.push(Branding.AppTitle);
|
|
|
|
document.title = parts.join(' - ');
|
|
}, [navModel, pageNav]);
|
|
}
|
|
|
|
function addTitleSegment(parts: string[], node: NavModelItem) {
|
|
if (!node.hideFromBreadcrumbs) {
|
|
parts.push(node.text);
|
|
}
|
|
}
|