Skip to content

Commit 0e4ff0a

Browse files
committed
Prevent full page reload for breadcrumbs.
1 parent c3fa61b commit 0e4ff0a

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

x-pack/plugins/uptime/public/hooks/use_breadcrumbs.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ import { useKibana } from '../../../../../src/plugins/kibana_react/public';
1313
import { useUrlParams } from '.';
1414
import { PLUGIN } from '../../common/constants/plugin';
1515

16-
export const makeBaseBreadcrumb = (href: string, params?: UptimeUrlParams): ChromeBreadcrumb => {
16+
export const makeBaseBreadcrumb = (
17+
href: string,
18+
navigateToHref?: (url: string) => Promise<void>,
19+
params?: UptimeUrlParams
20+
): ChromeBreadcrumb => {
1721
if (params) {
1822
const crumbParams: Partial<UptimeUrlParams> = { ...params };
1923
// We don't want to encode this values because they are often set to Date.now(), the relative
@@ -27,6 +31,12 @@ export const makeBaseBreadcrumb = (href: string, params?: UptimeUrlParams): Chro
2731
defaultMessage: 'Uptime',
2832
}),
2933
href,
34+
onClick: (event: MouseEvent) => {
35+
if (href && navigateToHref) {
36+
event.preventDefault();
37+
navigateToHref(href);
38+
}
39+
},
3040
};
3141
};
3242

@@ -35,9 +45,10 @@ export const useBreadcrumbs = (extraCrumbs: ChromeBreadcrumb[]) => {
3545
const kibana = useKibana();
3646
const setBreadcrumbs = kibana.services.chrome?.setBreadcrumbs;
3747
const appPath = kibana.services.application?.getUrlForApp(PLUGIN.ID) ?? '';
48+
const navigate = kibana.services.application?.navigateToUrl;
3849
useEffect(() => {
3950
if (setBreadcrumbs) {
40-
setBreadcrumbs([makeBaseBreadcrumb(appPath, params)].concat(extraCrumbs));
51+
setBreadcrumbs([makeBaseBreadcrumb(appPath, navigate, params)].concat(extraCrumbs));
4152
}
42-
}, [appPath, extraCrumbs, params, setBreadcrumbs]);
53+
}, [appPath, extraCrumbs, navigate, params, setBreadcrumbs]);
4354
};

0 commit comments

Comments
 (0)