From 34e4d944bdb0a958a4036de9440fdd97dd5fb455 Mon Sep 17 00:00:00 2001 From: Andreas Kienle Date: Fri, 19 Sep 2025 17:15:23 +0200 Subject: [PATCH 1/4] feat: rework breadcrumbs --- public/locales/en.json | 7 +- src/Routes.ts | 5 + .../Core/BreadcrumbFeedbackHeader.tsx | 63 +++++++++ .../Core/IntelligentBreadcrumbs.tsx | 128 ------------------ src/components/Core/LandscapeLabel.tsx | 6 - .../PathAwareBreadcrumbs.cy.tsx | 88 ++++++++++++ .../PathAwareBreadcrumbs.tsx | 78 +++++++++++ src/spaces/mcp/pages/McpPage.tsx | 4 +- src/spaces/onboarding/pages/ProjectPage.tsx | 4 +- src/views/ProjectList.tsx | 4 +- 10 files changed, 242 insertions(+), 145 deletions(-) create mode 100644 src/Routes.ts create mode 100644 src/components/Core/BreadcrumbFeedbackHeader.tsx delete mode 100644 src/components/Core/IntelligentBreadcrumbs.tsx delete mode 100644 src/components/Core/LandscapeLabel.tsx create mode 100644 src/components/Core/PathAwareBreadcrumbs/PathAwareBreadcrumbs.cy.tsx create mode 100644 src/components/Core/PathAwareBreadcrumbs/PathAwareBreadcrumbs.tsx diff --git a/public/locales/en.json b/public/locales/en.json index e24cb086..47f56437 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -103,11 +103,8 @@ "subtitleMessage": "Sorry, we couldn’t find what you are looking for.
The link may be incorrect or the {{entityType}} might have been removed.", "navigateHome": "Back to Homepage" }, - "IntelligentBreadcrumbs": { - "homeLabel": "Home", - "projects": "Projects", - "workspaces": "Workspaces", - "mcps": "MCPs" + "PathAwareBreadcrumbs": { + "projectsLabel": "Projects" }, "MCPContext": { "errorMessage": "An unknown error occurred" diff --git a/src/Routes.ts b/src/Routes.ts new file mode 100644 index 00000000..fd3ef0a1 --- /dev/null +++ b/src/Routes.ts @@ -0,0 +1,5 @@ +export const Routes = { + Home: '/', + Project: '/mcp/projects/:projectName', + Mcp: '/mcp/projects/:projectName/workspaces/:workspaceName/mcps/:controlPlaneName', +} as const; diff --git a/src/components/Core/BreadcrumbFeedbackHeader.tsx b/src/components/Core/BreadcrumbFeedbackHeader.tsx new file mode 100644 index 00000000..4d4a4745 --- /dev/null +++ b/src/components/Core/BreadcrumbFeedbackHeader.tsx @@ -0,0 +1,63 @@ +import { Button, FlexBox, FlexBoxAlignItems, Menu, MenuItem } from '@ui5/webcomponents-react'; + +import { useTranslation } from 'react-i18next'; +import { FeedbackButton } from './FeedbackButton.tsx'; +import { BetaButton } from './BetaButton.tsx'; +import { useRef, useState } from 'react'; +import { useAuthOnboarding } from '../../spaces/onboarding/auth/AuthContextOnboarding.tsx'; +import { SearchParamToggleVisibility } from '../Helper/FeatureToggleExistance.tsx'; +import { PathAwareBreadcrumbs } from './PathAwareBreadcrumbs/PathAwareBreadcrumbs.tsx'; + +export function BreadcrumbFeedbackHeader() { + return ( + + + + + { + if (params === undefined) return false; + if (params.get('showHeaderBar') === null) return false; + return params?.get('showHeaderBar') === 'false'; + }} + > + + + + ); +} + +function LogoutMenu() { + const auth = useAuthOnboarding(); + const { t } = useTranslation(); + + const buttonRef = useRef(null); + const [menuIsOpen, setMenuIsOpen] = useState(false); + return ( + <> +