Skip to content

Commit fba0c6e

Browse files
feat: landing header overrides
1 parent ec31434 commit fba0c6e

File tree

2 files changed

+44
-28
lines changed

2 files changed

+44
-28
lines changed

src/components/LandingHeader.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ import * as React from 'react'
66
import { Breadcrumb, BreadcrumbProps } from './Breadcrumb/Breadcrumb'
77
import { Button } from './Button/Button'
88
import { DocsLink } from './DocsLink'
9+
import { CrumbOverridesProps } from './Breadcrumb/Crumbs'
910

1011
export interface LandingHeaderProps {
1112
analyticsLabel?: string
1213
betaFeedbackLink?: string
1314
breadcrumbDataAttrs?: { [key: string]: boolean }
15+
breadcrumbOverrides?: CrumbOverridesProps[]
1416
breadcrumbProps?: BreadcrumbProps
1517
buttonDataAttrs?: { [key: string]: boolean | string }
1618
createButtonText?: string
@@ -38,6 +40,7 @@ export function LandingHeader({
3840
analyticsLabel,
3941
betaFeedbackLink,
4042
breadcrumbDataAttrs,
43+
breadcrumbOverrides,
4144
breadcrumbProps,
4245
buttonDataAttrs,
4346
createButtonText,
@@ -80,6 +83,7 @@ export function LandingHeader({
8083
{...breadcrumbDataAttrs}
8184
{...breadcrumbProps}
8285
disabledBreadcrumbEditButton={disabledBreadcrumbEditButton}
86+
crumbOverrides={breadcrumbOverrides}
8387
/>
8488
</Grid>
8589
{!shouldHideDocsAndCreateButtons && (

src/pages/workloads/create-edit/WorkloadsCreateEditPage.tsx

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Box, ButtonGroup, Typography } from '@mui/material'
1+
import { Box, ButtonGroup } from '@mui/material'
22
import YAML from 'yaml'
33
import { omit } from 'lodash'
44
import React, { useEffect, useState } from 'react'
@@ -22,11 +22,11 @@ import {
2222
useGetWorkloadCatalogMutation,
2323
} from 'redux/otomiApi'
2424
import DeleteButton from 'components/DeleteButton'
25-
import { DocsLink } from 'components/DocsLink'
2625
import ImgButtonGroup from 'components/ImgButtonGroup'
2726
import { TextField } from 'components/forms/TextField'
2827
import Section from 'components/Section'
2928
import { LoadingButton } from '@mui/lab'
29+
import { LandingHeader } from 'components/LandingHeader'
3030
import CodeEditor from './WorkloadsCodeEditor'
3131
import { createAplWorkloadApiResponseSchema } from './create-edit-workloads.validator'
3232

@@ -311,36 +311,48 @@ export default function WorkloadsCreateEditPage({
311311

312312
return (
313313
<PaperLayout title={t('TITLE_WORKLOAD', { workloadName, role: 'team' })}>
314+
<Box className={classes.header} sx={{ display: 'flex', alignItems: 'center', width: '100%' }}>
315+
<Box className={classes.imgHolder} sx={{ flex: '0 0 auto' }}>
316+
<img
317+
className={classes.img}
318+
src={icon}
319+
onError={({ currentTarget }) => {
320+
currentTarget.onerror = null
321+
currentTarget.src = `${icon}`
322+
}}
323+
alt={`Logo for ${icon}`}
324+
/>
325+
</Box>
326+
327+
<Box sx={{ flex: '1 1 auto', minWidth: 0 }}>
328+
<LandingHeader
329+
title={headerName && headerPath ? `${headerName} (${headerPath})` : headerName ?? headerPath}
330+
docsLabel='Docs'
331+
docsLink={
332+
workloadData?.spec?.url && workloadData?.spec?.path
333+
? getDocsLink(workloadData.spec.url as string, workloadData.spec.path as string)
334+
: undefined
335+
}
336+
hideCrumbX={workloadName ? [1, 2] : undefined}
337+
breadcrumbOverrides={[
338+
{
339+
position: 1,
340+
label: 'Workloads',
341+
linkTo: `/teams/${teamId}/workloads`,
342+
},
343+
{
344+
position: 2,
345+
label: 'Catalogs',
346+
linkTo: `/catalogs/${teamId}`,
347+
},
348+
]}
349+
/>
350+
</Box>
351+
</Box>
314352
{isErrorWorkload ? null : (
315353
<FormProvider {...methods}>
316354
<form onSubmit={handleSubmit(onSubmit)}>
317355
<Box sx={{ width: '100%' }}>
318-
<Box className={classes.header}>
319-
<Box className={classes.imgHolder}>
320-
<img
321-
className={classes.img}
322-
src={icon}
323-
onError={({ currentTarget }) => {
324-
// eslint-disable-next-line no-param-reassign
325-
currentTarget.onerror = null
326-
// eslint-disable-next-line no-param-reassign
327-
currentTarget.src = `${icon}`
328-
}}
329-
alt={`Logo for ${icon}`}
330-
/>
331-
</Box>
332-
<Box>
333-
<Typography variant='h6'>
334-
{headerName && headerPath ? `${headerName} (${headerPath})` : headerName ?? headerPath}
335-
</Typography>
336-
</Box>
337-
{workloadData?.spec?.url && workloadData?.spec?.path && (
338-
<Box sx={{ ml: 'auto' }}>
339-
<DocsLink href={getDocsLink(workloadData.spec.url as string, workloadData.spec.path as string)} />
340-
</Box>
341-
)}
342-
</Box>
343-
344356
<Section>
345357
<Box sx={{ display: 'flex', gap: 2, alignItems: 'flex-start' }}>
346358
<TextField

0 commit comments

Comments
 (0)