@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
67 lines (56 loc) • 1.41 kB
JSX
/* 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.oneOfType([
PropTypes.array,
PropTypes.object,
PropTypes.string,
]),
/**
* An array of detail blocks
*/
details: PropTypes.array,
};
const defaultProps = {};
class DetailRow extends Component {
renderDetails() {
if (this.props.children !== undefined) {
return this.props.children;
}
if (this.props.details) {
return this.props.details.map((detail, i) => {
const key = `page-header-detail-block-${i}`;
return (
<DetailBlock
key={key}
flavor={detail.flavor}
label={detail.label}
content={detail.content}
truncate={detail.truncate}
/>
);
});
}
return null;
}
render() {
const classes = classnames(
'slds-page-header__detail-row',
this.props.className
);
return <ul className={classes}>{this.renderDetails()}</ul>;
}
}
DetailRow.displayName = displayName;
DetailRow.propTypes = propTypes;
DetailRow.defaultProps = defaultProps;
export default DetailRow;