UNPKG

@automattic/form-components

Version:
39 lines (32 loc) 971 B
/** * External dependencies */ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { localize } from 'i18n-calypso'; import { isObject, omit } from 'lodash'; const renderRequiredBadge = translate => <small className="form-label__required"> { translate( 'Required' ) } </small>; const addKeys = elements => elements.map( ( elem, idx ) => ( isObject( elem ) ? { ...elem, key: idx } : elem ) ); const FormLabel = ( { children, required, translate, className, ...extraProps } ) => { children = React.Children.toArray( children ) || []; if ( required ) { children.push( renderRequiredBadge( translate ) ); } return ( <label { ...omit( extraProps, 'moment', 'numberFormat' ) } className={ classnames( className, 'form-label' ) } > { children.length ? addKeys( children ) : null } </label> ); }; FormLabel.propTypes = { required: PropTypes.bool, }; export default localize( FormLabel );