diff --git a/.changeset/catalog-graph-nfs-page.md b/.changeset/catalog-graph-nfs-page.md new file mode 100644 index 0000000000..fac437c641 --- /dev/null +++ b/.changeset/catalog-graph-nfs-page.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-graph': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/catalog-import-nfs-page.md b/.changeset/catalog-import-nfs-page.md new file mode 100644 index 0000000000..2944565205 --- /dev/null +++ b/.changeset/catalog-import-nfs-page.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-import': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/kubernetes-nfs-metadata.md b/.changeset/kubernetes-nfs-metadata.md new file mode 100644 index 0000000000..fb80bdb1a1 --- /dev/null +++ b/.changeset/kubernetes-nfs-metadata.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/notifications-nfs-metadata.md b/.changeset/notifications-nfs-metadata.md new file mode 100644 index 0000000000..10ee3bbd8c --- /dev/null +++ b/.changeset/notifications-nfs-metadata.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/org-nfs-metadata.md b/.changeset/org-nfs-metadata.md new file mode 100644 index 0000000000..759cffbd30 --- /dev/null +++ b/.changeset/org-nfs-metadata.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/signals-nfs-metadata.md b/.changeset/signals-nfs-metadata.md new file mode 100644 index 0000000000..de9c09421b --- /dev/null +++ b/.changeset/signals-nfs-metadata.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-signals': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts index 6d16d134c7..d93b6eed32 100644 --- a/packages/app/e2e-tests/app.test.ts +++ b/packages/app/e2e-tests/app.test.ts @@ -25,7 +25,11 @@ test('App should render the welcome page', async ({ page }) => { // Verify the sidebar navigation is visible after sign-in await expect( - page.getByRole('navigation').getByRole('link', { name: 'Catalog' }), + page + .getByRole('navigation') + .getByRole('link', { name: 'Catalog', exact: true }), + ).toBeVisible(); + await expect( + page.getByRole('link', { name: 'APIs', exact: true }), ).toBeVisible(); - await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible(); }); diff --git a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts index 187e124bfa..d8dbc1faa8 100644 --- a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts +++ b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts @@ -24,6 +24,10 @@ test('App should render the welcome page', async ({ page }) => { await enterButton.click(); const nav = page.getByRole('navigation'); - await expect(nav.getByRole('link', { name: 'Catalog' })).toBeVisible(); - await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible(); + await expect( + nav.getByRole('link', { name: 'Catalog', exact: true }), + ).toBeVisible(); + await expect( + page.getByRole('link', { name: 'APIs', exact: true }), + ).toBeVisible(); }); diff --git a/plugins/catalog-graph/src/alpha.tsx b/plugins/catalog-graph/src/alpha.tsx index a0f16cda2a..f1b4dbc6d0 100644 --- a/plugins/catalog-graph/src/alpha.tsx +++ b/plugins/catalog-graph/src/alpha.tsx @@ -19,6 +19,7 @@ import { createFrontendPlugin, PageBlueprint, } from '@backstage/frontend-plugin-api'; +import { RiMindMap } from '@remixicon/react'; import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha'; import { catalogGraphRouteRef, catalogEntityRouteRef } from './routes'; import { @@ -97,6 +98,8 @@ const CatalogGraphApi = ApiBlueprint.make({ export default createFrontendPlugin({ pluginId: 'catalog-graph', + title: 'Catalog Graph', + icon: , info: { packageJson: () => import('../package.json') }, routes: { catalogGraph: catalogGraphRouteRef, diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index de96cd1f8d..028c7017e7 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -70,6 +70,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", "@octokit/rest": "^19.0.3", + "@remixicon/react": "^4.6.0", "git-url-parse": "^15.0.0", "js-base64": "^3.6.0", "lodash": "^4.17.21", diff --git a/plugins/catalog-import/src/alpha.tsx b/plugins/catalog-import/src/alpha.tsx index d0c671fe5a..dcbc8886e4 100644 --- a/plugins/catalog-import/src/alpha.tsx +++ b/plugins/catalog-import/src/alpha.tsx @@ -14,6 +14,8 @@ * limitations under the License. */ +import { RiAddCircleLine } from '@remixicon/react'; + import { configApiRef, discoveryApiRef, @@ -91,6 +93,8 @@ const catalogImportApi = ApiBlueprint.make({ /** @alpha */ export default createFrontendPlugin({ pluginId: 'catalog-import', + title: 'Register Existing Component', + icon: , info: { packageJson: () => import('../package.json') }, extensions: [catalogImportApi, catalogImportPage], routes: { diff --git a/plugins/kubernetes/src/alpha/plugin.tsx b/plugins/kubernetes/src/alpha/plugin.tsx index fdca467886..283961b514 100644 --- a/plugins/kubernetes/src/alpha/plugin.tsx +++ b/plugins/kubernetes/src/alpha/plugin.tsx @@ -25,8 +25,23 @@ import { kubernetesProxyApi, } from './apis'; +// Kubernetes helm wheel from Simple Icons (https://simpleicons.org/?q=kubernetes), licensed under CC0 +const KubernetesIcon = () => ( + + + +); + export default createFrontendPlugin({ pluginId: 'kubernetes', + title: 'Kubernetes', + icon: , info: { packageJson: () => import('../../package.json') }, extensions: [ kubernetesPage, diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json index 943135a3c0..58ac16a7bf 100644 --- a/plugins/notifications/package.json +++ b/plugins/notifications/package.json @@ -61,6 +61,7 @@ "@backstage/ui": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", + "@remixicon/react": "^4.6.0", "lodash": "^4.17.21", "material-ui-confirm": "^3.0.12", "notistack": "^3.0.1", diff --git a/plugins/notifications/src/alpha.tsx b/plugins/notifications/src/alpha.tsx index a40bc96b84..aa51d22261 100644 --- a/plugins/notifications/src/alpha.tsx +++ b/plugins/notifications/src/alpha.tsx @@ -21,6 +21,7 @@ import { discoveryApiRef, fetchApiRef, } from '@backstage/frontend-plugin-api'; +import { RiNotification3Line } from '@remixicon/react'; import { rootRouteRef } from './routes'; import { NotificationsClient, notificationsApiRef } from './api'; @@ -48,6 +49,8 @@ const api = ApiBlueprint.make({ /** @alpha */ export default createFrontendPlugin({ pluginId: 'notifications', + title: 'Notifications', + icon: , info: { packageJson: () => import('../package.json') }, routes: { root: rootRouteRef, diff --git a/plugins/org/package.json b/plugins/org/package.json index 694e252535..307b675b35 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -61,6 +61,7 @@ "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", + "@remixicon/react": "^4.6.0", "lodash": "^4.17.21", "p-limit": "^3.1.0", "pluralize": "^8.0.0", diff --git a/plugins/org/src/alpha.tsx b/plugins/org/src/alpha.tsx index 80155c8467..41e8082545 100644 --- a/plugins/org/src/alpha.tsx +++ b/plugins/org/src/alpha.tsx @@ -15,6 +15,7 @@ */ import { createFrontendPlugin } from '@backstage/frontend-plugin-api'; +import { RiTeamLine } from '@remixicon/react'; import { catalogIndexRouteRef } from './routes'; import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha'; @@ -118,6 +119,8 @@ const EntityUserProfileCard = EntityCardBlueprint.makeWithOverrides({ /** @alpha */ export default createFrontendPlugin({ pluginId: 'org', + title: 'Org', + icon: , info: { packageJson: () => import('../package.json') }, extensions: [ EntityGroupProfileCard, diff --git a/plugins/signals/package.json b/plugins/signals/package.json index 6752b09b6c..4e06dd4105 100644 --- a/plugins/signals/package.json +++ b/plugins/signals/package.json @@ -58,6 +58,7 @@ "@backstage/theme": "workspace:^", "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.4", + "@remixicon/react": "^4.6.0", "uuid": "^11.0.0" }, "devDependencies": { diff --git a/plugins/signals/src/alpha.tsx b/plugins/signals/src/alpha.tsx index c32bff140e..3cab21f00c 100644 --- a/plugins/signals/src/alpha.tsx +++ b/plugins/signals/src/alpha.tsx @@ -20,6 +20,7 @@ import { discoveryApiRef, identityApiRef, } from '@backstage/frontend-plugin-api'; +import { RiBroadcastLine } from '@remixicon/react'; import { signalApiRef } from '@backstage/plugin-signals-react'; import { SignalClient } from './api/SignalClient'; @@ -43,6 +44,8 @@ const api = ApiBlueprint.make({ /** @alpha */ export default createFrontendPlugin({ pluginId: 'signals', + title: 'Signals', + icon: , info: { packageJson: () => import('../package.json') }, extensions: [api], }); diff --git a/yarn.lock b/yarn.lock index aa6bd6204d..f84d9ec8f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5250,6 +5250,7 @@ __metadata: "@material-ui/icons": "npm:^4.9.1" "@material-ui/lab": "npm:4.0.0-alpha.61" "@octokit/rest": "npm:^19.0.3" + "@remixicon/react": "npm:^4.6.0" "@testing-library/dom": "npm:^10.0.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^16.0.0" @@ -6278,6 +6279,7 @@ __metadata: "@backstage/ui": "workspace:^" "@material-ui/core": "npm:^4.9.13" "@material-ui/icons": "npm:^4.9.1" + "@remixicon/react": "npm:^4.6.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^16.0.0" "@types/react": "npm:^18.0.0" @@ -6360,6 +6362,7 @@ __metadata: "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" "@material-ui/lab": "npm:4.0.0-alpha.61" + "@remixicon/react": "npm:^4.6.0" "@testing-library/dom": "npm:^10.0.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^16.0.0" @@ -7424,6 +7427,7 @@ __metadata: "@backstage/theme": "workspace:^" "@backstage/types": "workspace:^" "@material-ui/core": "npm:^4.12.4" + "@remixicon/react": "npm:^4.6.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^16.0.0" "@types/react": "npm:^18.0.0"