Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import { Heading, Layout, Container } from '@wings-software/uicore'
import React from 'react'
import { Color } from '@harness/design-system'
import css from './ExtendedPageHeader.module.scss'
export interface ExtendedPageHeaderProps {
title: React.ReactNode
rowOneContent: React.ReactNode
rowTwoContent: React.ReactNode
rowThreeContent?: React.ReactNode | null
toolbar?: React.ReactNode
}
/**
* PageExtendedHeader implements a consistent header for a page header in which title is rendered on
* the left followed by rowOneContent component/s,
* then rowTwoContent bellow and toolbar on the right.
* then rowThreeContent
* It also has a consistent box-shadow styling.
*/
export const ExtendedPageHeader: React.FC<ExtendedPageHeaderProps> = ({
title,
rowOneContent,
rowTwoContent,
rowThreeContent = null,
toolbar
}) => {
return (
<Layout.Vertical className={css.container} spacing="small" padding={{ top: 'medium' }}>
<Layout.Horizontal className={css.row} spacing="medium">
<Heading level={1} color={Color.GREY_800}>
{title}
</Heading>
{rowOneContent}
</Layout.Horizontal>
<Layout.Horizontal className={css.row} spacing="xsmall">
{rowTwoContent}
{toolbar && <Container className={css.toolbar}>{toolbar}</Container>}
</Layout.Horizontal>
{rowThreeContent && (
<Layout.Horizontal className={css.row} spacing="xsmall">
{rowThreeContent}
</Layout.Horizontal>
)}
</Layout.Vertical>
)
}
|