UNPKG

@salesforce/design-system-react

Version:

Salesforce Lightning Design System for React

65 lines (54 loc) 1.48 kB
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */ /* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import DetailBlock from './detail-block'; const displayName = 'PageHeaderDetailRow'; const propTypes = { children: PropTypes.node, /** * Optional class name */ className: PropTypes.string, /** * An array of detail blocks */ details: PropTypes.array, }; const defaultProps = {}; class DetailRow extends Component { // eslint-disable-next-line class-methods-use-this _getClassNames(className) { return classnames('slds-grid slds-page-header__detail-row', className); } render() { const { children, className, details } = this.props; const classes = this._getClassNames(className); /** * Render the deets */ const renderDetails = () => { if (children !== undefined) { return children; } return details.map((detail, i) => { const key = `PageHeader.detailBlock.${i}`; return ( <DetailBlock key={key} flavor={detail.flavor} label={detail.label} content={detail.content} truncate={detail.truncate} /> ); }); }; return <ul className={classes}>{renderDetails()}</ul>; } } DetailRow.displayName = displayName; DetailRow.propTypes = propTypes; DetailRow.defaultProps = defaultProps; export default DetailRow;