@testqueryparkui/qp-es-ui
Version:
Query Park UI Components for React
60 lines (52 loc) • 1.31 kB
JavaScript
// Query Park Inc. 2018
// This component renders a field with a stylized label
import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import Style from './index.module.css'
const Field = ({
className,
large,
valueEmphasis,
labelEllipsis,
labelEmphasis,
valueEllipsis,
label,
value
}) => {
const ContainerStyle = classNames({
[]: labelEllipsis || valueEllipsis
}, className)
const LabelStyle = classNames({
[]: large,
[]: !large,
[]: labelEmphasis,
[]: labelEllipsis
})
const ValueStyle = classNames({
[]: large,
[]: !large,
[]: valueEmphasis,
[]: valueEllipsis
})
return (
<div className={ContainerStyle}>
<h2 className={LabelStyle}>{ label }</h2>
<p className={ValueStyle}>{ value }</p>
</div>
)
}
Field.propTypes = {
className: PropTypes.string,
large: PropTypes.bool,
valueEmphasis: PropTypes.bool,
valueEllipsis: PropTypes.bool,
labelEmphasis: PropTypes.bool,
labelEllipsis: PropTypes.bool,
label: PropTypes.string.isRequired,
value: PropTypes.string
}
Field.defaultProps = {
value: 'None'
}
export default Field