@@ -13,7 +13,11 @@ import { useKibana } from '../../../../../src/plugins/kibana_react/public';
1313import { useUrlParams } from '.' ;
1414import { 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