/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiHorizontalRule, EuiPanel, EuiTitle, EuiText, EuiSpacer, } from '@elastic/eui'; interface ContentPanelProps { title?: string | JSX.Element; titleSize?: 'xxxs' | 'xxs' | 'xs' | 's' | 'm' | 'l'; subTitleText?: string | JSX.Element; bodyStyles?: object; panelStyles?: object; actions?: React.ReactNode | React.ReactNode[]; children: React.ReactNode | React.ReactNode[]; hideHeaderBorder?: boolean; className?: string; } const renderSubTitleText = (subTitleText: string | JSX.Element): JSX.Element | null => { if (typeof subTitleText === 'string') { if (!subTitleText) return null; return ( {subTitleText} ); } return subTitleText; }; const ContentPanel: React.SFC = ({ title = '', titleSize = 'm', subTitleText = '', bodyStyles = {}, panelStyles = {}, actions, children, hideHeaderBorder = false, className = '', }) => ( {typeof title === 'string' ? (

{title}

) : ( title )} {renderSubTitleText(subTitleText)}
{actions ? ( {Array.isArray(actions) ? ( (actions as React.ReactNode[]).map( (action: React.ReactNode, idx: number): React.ReactNode => ( {action} ) ) ) : ( {actions} )} ) : null}
{hideHeaderBorder ? : }
{children}
); export default ContentPanel;