From c0ab3763e553cb58cb6d87accaa5471303019bfb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 15 Mar 2026 14:16:26 +0100 Subject: [PATCH] Fix tsc errors and add missing changeset Signed-off-by: Patrik Oldsberg Made-with: Cursor --- .changeset/nfs-icon-plugin-app.md | 5 +++++ .../IconsApi/DefaultIconsApi.test.ts | 4 ---- plugins/app-visualizer/report.api.md | 22 ------------------- 3 files changed, 5 insertions(+), 26 deletions(-) create mode 100644 .changeset/nfs-icon-plugin-app.md diff --git a/.changeset/nfs-icon-plugin-app.md b/.changeset/nfs-icon-plugin-app.md new file mode 100644 index 0000000000..0f6280a6fb --- /dev/null +++ b/.changeset/nfs-icon-plugin-app.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-app': patch +--- + +The app nav now falls back to `plugin.icon` for navigation items that don't have an explicit icon set. diff --git a/packages/frontend-app-api/src/apis/implementations/IconsApi/DefaultIconsApi.test.ts b/packages/frontend-app-api/src/apis/implementations/IconsApi/DefaultIconsApi.test.ts index 87f884d2f2..310e9e0184 100644 --- a/packages/frontend-app-api/src/apis/implementations/IconsApi/DefaultIconsApi.test.ts +++ b/packages/frontend-app-api/src/apis/implementations/IconsApi/DefaultIconsApi.test.ts @@ -72,15 +72,12 @@ describe('DefaultIconsApi', () => { expect(typeof icon).toBe('function'); // @ts-expect-error testing runtime behavior const result = icon({}); - // @ts-expect-error accessing internal React element structure expect(result.type).toBe('span'); - // @ts-expect-error accessing internal React element structure expect(result.props.style).toEqual({ display: 'inline-flex', fontSize: '1.5rem', lineHeight: 0, }); - // @ts-expect-error accessing internal React element structure expect(result.props.children).toBe(element); expect(api.getIcon('myIcon')).toBe(icon); }); @@ -92,7 +89,6 @@ describe('DefaultIconsApi', () => { // @ts-expect-error testing runtime behavior const result = icon({ fontSize: 'small' }); - // @ts-expect-error accessing internal React element structure expect(result.props.style.fontSize).toBe('1.25rem'); }); diff --git a/plugins/app-visualizer/report.api.md b/plugins/app-visualizer/report.api.md index 9ee06eccb0..ad8d78c6cb 100644 --- a/plugins/app-visualizer/report.api.md +++ b/plugins/app-visualizer/report.api.md @@ -8,7 +8,6 @@ import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api'; import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; import { ExtensionInput } from '@backstage/frontend-plugin-api'; -import { IconComponent } from '@backstage/frontend-plugin-api'; import { IconElement } from '@backstage/frontend-plugin-api'; import { JSX as JSX_2 } from 'react'; import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api'; @@ -20,27 +19,6 @@ const visualizerPlugin: OverridableFrontendPlugin< {}, {}, { - 'nav-item:app-visualizer': OverridableExtensionDefinition<{ - kind: 'nav-item'; - name: undefined; - config: {}; - configInput: {}; - output: ExtensionDataRef< - { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }, - 'core.nav-item.target', - {} - >; - inputs: {}; - params: { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }; - }>; 'page:app-visualizer': OverridableExtensionDefinition<{ kind: 'page'; name: undefined;