diff --git a/src/Assets/IconV2/ic-binoculars.svg b/src/Assets/IconV2/ic-binoculars.svg new file mode 100644 index 000000000..2eb3697bf --- /dev/null +++ b/src/Assets/IconV2/ic-binoculars.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/Common/BreadCrumb/BreadCrumb.tsx b/src/Common/BreadCrumb/BreadCrumb.tsx index 38d9bc5c5..f94cdd7ca 100644 --- a/src/Common/BreadCrumb/BreadCrumb.tsx +++ b/src/Common/BreadCrumb/BreadCrumb.tsx @@ -16,7 +16,7 @@ import React, { useMemo, useEffect } from 'react' import { Link, useRouteMatch, useParams } from 'react-router-dom' -import { useBreadcrumbContext } from './BreadcrumbStore' +import { getBreadCrumbSeparator, useBreadcrumbContext } from './BreadcrumbStore' import { ConditionalWrap } from '../Helper' import { Breadcrumb, Breadcrumbs, UseBreadcrumbOptionalProps, UseBreadcrumbState } from './Types' @@ -90,7 +90,7 @@ export function useBreadcrumb(props?: UseBreadcrumbOptionalProps, deps?: any[]): export const BreadCrumb: React.FC = ({ breadcrumbs, sep = '/', - className = 'dc__devtron-breadcrumb__item', + className = 'dc__devtron-breadcrumb__item fs-16 fw-4 lh-1-5 dc__ellipsis-right dc__mxw-155', }) => { const { url } = useRouteMatch() const filteredCrumbs = breadcrumbs.filter((crumb) => !!crumb.name) @@ -114,9 +114,7 @@ export const BreadCrumb: React.FC = ({ {breadcrumb.name} - {idx + 1 !== filteredCrumbs.length && breadcrumb.name && ( - {sep} - )} + {idx + 1 !== filteredCrumbs.length && breadcrumb.name && getBreadCrumbSeparator()} ))} diff --git a/src/Common/BreadCrumb/BreadcrumbStore.tsx b/src/Common/BreadCrumb/BreadcrumbStore.tsx index cf91aad28..006488a62 100644 --- a/src/Common/BreadCrumb/BreadcrumbStore.tsx +++ b/src/Common/BreadCrumb/BreadcrumbStore.tsx @@ -22,9 +22,14 @@ const initialState = { } export const BreadcrumbText = ({ heading, isActive, shouldTruncate = false }: BreadcrumbTextProps) => ( -

{heading}

+ {heading} ) +export const getBreadCrumbSeparator = (sep: string = '/') => ( + {sep} +) + + const Store = ({ children }) => { const [state, setState] = useState(initialState) return {children} diff --git a/src/Common/Constants.ts b/src/Common/Constants.ts index 22219c2e0..ce392ca05 100644 --- a/src/Common/Constants.ts +++ b/src/Common/Constants.ts @@ -49,6 +49,7 @@ export const PATTERNS = { } const GLOBAL_CONFIG_TEMPLATES_DEVTRON_APP = '/global-config/templates/devtron-apps' +const OBSERVABILITY_ROOT = '/observability' export const URLS = { LOGIN: '/login', @@ -88,6 +89,10 @@ export const URLS = { GLOBAL_CONFIG_TEMPLATES_DEVTRON_APP_DETAIL: `${GLOBAL_CONFIG_TEMPLATES_DEVTRON_APP}/detail/:appId`, LICENSE_AUTH: '/license-auth', GLOBAL_CONFIG_EDIT_CLUSTER: '/global-config/cluster-env/edit/:clusterId', + // OBSERVABILITY + OBSERVABILITY: OBSERVABILITY_ROOT, + OBSERVABILITY_OVERVIEW: `${OBSERVABILITY_ROOT}/overview`, + OBSERVABILITY_CUSTOMER_LIST: `${OBSERVABILITY_ROOT}/tenants`, } as const export const ROUTES = { diff --git a/src/Shared/Components/Icon/Icon.tsx b/src/Shared/Components/Icon/Icon.tsx index 9182ed7c6..93836eaef 100644 --- a/src/Shared/Components/Icon/Icon.tsx +++ b/src/Shared/Components/Icon/Icon.tsx @@ -20,6 +20,7 @@ import { ReactComponent as ICAzureAks } from '@IconsV2/ic-azure-aks.svg' import { ReactComponent as ICBgCluster } from '@IconsV2/ic-bg-cluster.svg' import { ReactComponent as ICBgEnvironment } from '@IconsV2/ic-bg-environment.svg' import { ReactComponent as ICBharatpe } from '@IconsV2/ic-bharatpe.svg' +import { ReactComponent as ICBinoculars } from '@IconsV2/ic-binoculars.svg' import { ReactComponent as ICBitbucket } from '@IconsV2/ic-bitbucket.svg' import { ReactComponent as ICBookOpen } from '@IconsV2/ic-book-open.svg' import { ReactComponent as ICBrain } from '@IconsV2/ic-brain.svg' @@ -262,6 +263,7 @@ export const iconMap = { 'ic-bg-cluster': ICBgCluster, 'ic-bg-environment': ICBgEnvironment, 'ic-bharatpe': ICBharatpe, + 'ic-binoculars': ICBinoculars, 'ic-bitbucket': ICBitbucket, 'ic-book-open': ICBookOpen, 'ic-brain': ICBrain,