From 40dfe4a00f9955ca5eda4653f58ad0f74ee0e842 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 17 Feb 2026 13:14:45 +0100 Subject: [PATCH] frontend-plugin-api: drop match strategy from PageLayout tabs Signed-off-by: Patrik Oldsberg --- packages/frontend-plugin-api/report.api.md | 2 -- .../src/blueprints/PageBlueprint.tsx | 1 - .../src/components/PageLayout.tsx | 1 - plugins/app/src/extensions/components.tsx | 14 ++++++++++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/frontend-plugin-api/report.api.md b/packages/frontend-plugin-api/report.api.md index 44a2ab3ced..6ba548af19 100644 --- a/packages/frontend-plugin-api/report.api.md +++ b/packages/frontend-plugin-api/report.api.md @@ -1825,8 +1825,6 @@ export interface PageTab { id: string; // (undocumented) label: string; - // (undocumented) - matchStrategy?: 'prefix' | 'exact'; } // @public diff --git a/packages/frontend-plugin-api/src/blueprints/PageBlueprint.tsx b/packages/frontend-plugin-api/src/blueprints/PageBlueprint.tsx index cfba1dccec..b41a7ddb77 100644 --- a/packages/frontend-plugin-api/src/blueprints/PageBlueprint.tsx +++ b/packages/frontend-plugin-api/src/blueprints/PageBlueprint.tsx @@ -110,7 +110,6 @@ export const PageBlueprint = createExtensionBlueprint({ label: tabTitle || path, icon: tabIcon, href: path, - matchStrategy: 'prefix' as const, }; }); diff --git a/packages/frontend-plugin-api/src/components/PageLayout.tsx b/packages/frontend-plugin-api/src/components/PageLayout.tsx index 20d57321f6..0eadc07ffd 100644 --- a/packages/frontend-plugin-api/src/components/PageLayout.tsx +++ b/packages/frontend-plugin-api/src/components/PageLayout.tsx @@ -27,7 +27,6 @@ export interface PageTab { label: string; icon?: IconElement; href: string; - matchStrategy?: 'prefix' | 'exact'; } /** diff --git a/plugins/app/src/extensions/components.tsx b/plugins/app/src/extensions/components.tsx index dc90c26ad6..230db89767 100644 --- a/plugins/app/src/extensions/components.tsx +++ b/plugins/app/src/extensions/components.tsx @@ -28,6 +28,7 @@ import { } from '@backstage/core-components'; import { PluginHeader } from '@backstage/ui'; import Button from '@material-ui/core/Button'; +import { useMemo } from 'react'; export const Progress = SwappableComponentBlueprint.make({ name: 'core-progress', @@ -74,14 +75,23 @@ export const PageLayout = SwappableComponentBlueprint.make({ component: SwappablePageLayout, loader: () => (props: PageLayoutProps) => { const { title, icon, noHeader, headerActions, tabs, children } = props; - if (tabs) { + const tabsWithMatchStrategy = useMemo( + () => + tabs?.map(tab => ({ + ...tab, + matchStrategy: 'prefix' as const, + })), + [tabs], + ); + + if (tabsWithMatchStrategy) { return ( <> {!noHeader && ( )}