import * as React from "react"; import { cx } from "@emotion/css"; import { default as Breadcrumb } from "../../breadcrumb/components/Breadcrumb"; import { listReset, flex, flexItem, padding, display, border } from "../../shared/styles/styleUtils"; import { SpaceSizes } from "../../shared/styles/styleUtils/modifiers/modifierUtils"; import PageHeaderTabs from "../components/PageHeaderTabs"; import { fillHeight } from "../style"; export interface PageHeaderProps { /** * Breadcrumbs to display on the left side of the PageHeader. */ breadcrumbElements: React.ReactNodeArray; /** * Actions to display on the right side of the PageHeader. */ actions?: Array>; /** * Human-readable selector used for writing tests. */ "data-cy"?: string; /** * Pass in custom CSS properties. */ className?: string; children?: React.ReactNode; } export const pageHeaderPaddingSize: SpaceSizes = "l"; const PageHeader = ({ breadcrumbElements, actions = [], children, "data-cy": dataCy = "pageHeader", className }: PageHeaderProps) => { const hasTabsChild = React.Children.toArray(children).some( child => React.isValidElement(child) && child.type === PageHeaderTabs ); return (
{breadcrumbElements}
    {actions.map((action, i) => { return (
  • {action}
  • ); })}
{children}
); }; export default React.memo(PageHeader);