Sha256: 041c9658f0d13b45d88bfce22749986759c5d343a4b3baef59a2a78f40f8c619
Contents?: true
Size: 948 Bytes
Versions: 35
Compression:
Stored size: 948 Bytes
Contents
import React from 'react'; import PropTypes from 'prop-types'; import { Table } from 'react-bootstrap'; // using Map to preserve order const createRows = (details, mapping) => { const rows = []; /* eslint-disable no-restricted-syntax, react/jsx-closing-tag-location */ for (const key of mapping.keys()) { rows.push(<tr key={key}> <td><b>{mapping.get(key)}</b></td> <td>{Array.isArray(details[key]) ? details[key].join(', ') : details[key]}</td> </tr>); } /* eslint-enable no-restricted-syntax, react/jsx-closing-tag-location */ return rows; }; const ContentDetailInfo = ({ contentDetails, displayMap }) => ( <Table ouiaId="content-details-info-table"> <tbody> {createRows(contentDetails, displayMap)} </tbody> </Table> ); ContentDetailInfo.propTypes = { contentDetails: PropTypes.shape({}).isRequired, displayMap: PropTypes.instanceOf(Map).isRequired, }; export default ContentDetailInfo;
Version data entries
35 entries across 35 versions & 1 rubygems