From b3ddb3f8193c957f03bd983fed33a759c8ee5eb7 Mon Sep 17 00:00:00 2001 From: Bailey Cash Date: Mon, 30 Mar 2026 11:17:14 -0400 Subject: [PATCH] re-introduce sln breadcrumbs to unified rules --- .../public/application/home.tsx | 3 +- .../application/hooks/use_set_breadcrumbs.ts | 36 ------------------- .../rule_details/components/rule_details.tsx | 3 +- .../components/rule_details_route.tsx | 3 +- .../sections/rule_form/rule_form_route.tsx | 3 +- .../sections/rules_page/rules_page.tsx | 3 +- 6 files changed, 5 insertions(+), 46 deletions(-) delete mode 100644 x-pack/platform/plugins/shared/triggers_actions_ui/public/application/hooks/use_set_breadcrumbs.ts diff --git a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/home.tsx b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/home.tsx index 833b09f9de4d3..b11cd1f7e3eda 100644 --- a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/home.tsx +++ b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/home.tsx @@ -22,7 +22,6 @@ import { CreateRuleButton } from './sections/rules_list/components/create_rule_b import type { Section } from './constants'; import { routeToRules, routeToLogs } from './constants'; import { getAlertingSectionBreadcrumb } from './lib/breadcrumb'; -import { useSetBreadcrumbs } from './hooks/use_set_breadcrumbs'; import { getCurrentDocTitle } from './lib/doc_title'; import { HealthCheck } from './components/health_check'; @@ -52,8 +51,8 @@ export const TriggersActionsUIHome: React.FunctionComponent { - const { chrome } = useKibana().services; - const [chromeStyle, setChromeStyle] = useState(undefined); - - useEffect(() => { - const subscription = chrome.getChromeStyle$().subscribe(setChromeStyle); - return () => subscription.unsubscribe(); - }, [chrome]); - - return useCallback( - (breadcrumbs: ChromeBreadcrumb[]) => { - chrome.setBreadcrumbs( - breadcrumbs, - chromeStyle === 'project' ? { project: { value: breadcrumbs } } : undefined - ); - }, - [chrome, chromeStyle] - ); -}; diff --git a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx index d58f032b6c240..1d6cf964455a7 100644 --- a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx +++ b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx @@ -42,7 +42,6 @@ import { hasManageApiKeysCapability, } from '../../../lib/capabilities'; import { getRulesBreadcrumbWithHref } from '../../../lib/breadcrumb'; -import { useSetBreadcrumbs } from '../../../hooks/use_set_breadcrumbs'; import { getCurrentDocTitle } from '../../../lib/doc_title'; import type { Rule, @@ -109,9 +108,9 @@ export const RuleDetails: React.FunctionComponent = ({ theme, userProfile, notifications: { toasts }, + setBreadcrumbs, } = useKibana().services; const { capabilities, getUrlForApp } = application; - const setBreadcrumbs = useSetBreadcrumbs(); const [rulesToDelete, setRulesToDelete] = useState([]); const [rulesToUpdateAPIKey, setRulesToUpdateAPIKey] = useState([]); diff --git a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details_route.tsx b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details_route.tsx index 6f314d6feb9cc..8e3568b6a4ba1 100644 --- a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details_route.tsx +++ b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_details/components/rule_details_route.tsx @@ -21,7 +21,6 @@ import { withActionOperations } from '../../common/components/with_actions_api_o import { useKibana } from '../../../../common/lib/kibana'; import { CenterJustifiedSpinner } from '../../../components/center_justified_spinner'; import { getRulesBreadcrumbWithHref } from '../../../lib/breadcrumb'; -import { useSetBreadcrumbs } from '../../../hooks/use_set_breadcrumbs'; type RuleDetailsRouteProps = RouteComponentProps<{ ruleId: string; @@ -44,12 +43,12 @@ export const RuleDetailsRoute: React.FunctionComponent = notifications: { toasts }, spaces: spacesApi, application: { getUrlForApp }, + setBreadcrumbs, } = useKibana().services; const { basePath } = http; // sets a baseline breadcrumb regardless of the outcome of loading the rule - const setBreadcrumbs = useSetBreadcrumbs(); useEffect(() => { setBreadcrumbs([getRulesBreadcrumbWithHref(getUrlForApp)]); }, [getUrlForApp, setBreadcrumbs]); diff --git a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_form/rule_form_route.tsx b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_form/rule_form_route.tsx index 46990ded30172..7c15729d0fdec 100644 --- a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_form/rule_form_route.tsx +++ b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rule_form/rule_form_route.tsx @@ -13,7 +13,6 @@ import { useHistory, useLocation, useParams } from 'react-router-dom'; import { ProjectRoutingAccess, useRouteBasedCpsPickerAccess } from '@kbn/cps-utils'; import { useKibana } from '../../../common/lib/kibana'; import { getAlertingSectionBreadcrumb } from '../../lib/breadcrumb'; -import { useSetBreadcrumbs } from '../../hooks/use_set_breadcrumbs'; import { getCurrentDocTitle } from '../../lib/doc_title'; import { RuleTemplateError } from './components/rule_template_error'; import { CenterJustifiedSpinner } from '../../components/center_justified_spinner'; @@ -35,9 +34,9 @@ export const RuleFormRoute = () => { contentManagement, uiActions, chrome, + setBreadcrumbs, ...startServices } = useKibana().services; - const setBreadcrumbs = useSetBreadcrumbs(); const { getUrlForApp } = application; const location = useLocation<{ returnApp?: string; returnPath?: string }>(); diff --git a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rules_page/rules_page.tsx b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rules_page/rules_page.tsx index 00e8c806f6e43..847bd0d3b6402 100644 --- a/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rules_page/rules_page.tsx +++ b/x-pack/platform/plugins/shared/triggers_actions_ui/public/application/sections/rules_page/rules_page.tsx @@ -25,7 +25,6 @@ import { RulesListDocLink } from '../rules_list/components/rules_list_doc_link'; import { RulesPageTemplate } from './rules_page_template'; import { useKibana } from '../../../common/lib/kibana'; import { getAlertingSectionBreadcrumb, getRulesBreadcrumbWithHref } from '../../lib/breadcrumb'; -import { useSetBreadcrumbs } from '../../hooks/use_set_breadcrumbs'; import { CreateRuleButton } from '../rules_list/components/create_rule_button'; import { getCurrentDocTitle } from '../../lib/doc_title'; import type { Section } from '../../constants'; @@ -44,8 +43,8 @@ const RulesPage = () => { notifications: { toasts }, ruleTypeRegistry, cps, + setBreadcrumbs, } = useKibana().services; - const setBreadcrumbs = useSetBreadcrumbs(); const { authorizedToReadAnyRules, authorizedToCreateAnyRules } = useGetRuleTypesPermissions({ http,