All files / molecule/radioButtonField/src index.js

100% Statements 4/4
100% Branches 0/0
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95                1x                             7x                                                 1x   1x                                                                                        
import PropTypes from 'prop-types'
 
import AtomRadioButton from '@s-ui/react-atom-radio-button'
import {AtomValidationTextTypes} from '@s-ui/react-atom-validation-text'
import MoleculeField from '@s-ui/react-molecule-field'
 
import {BASE_CLASS} from './settings.js'
 
const MoleculeRadioButtonField = ({
  id,
  label,
  nodeLabel,
  successText,
  errorText,
  alertText,
  helpText,
  status,
  statusText,
  onChange,
  onClickLabel,
  fullWidth,
  ...props
}) => {
  return (
    <div className={BASE_CLASS}>
      <MoleculeField
        name={id}
        label={label}
        nodeLabel={nodeLabel}
        successText={successText}
        errorText={errorText}
        alertText={alertText}
        helpText={helpText}
        onChange={onChange}
        status={status}
        statusText={statusText}
        onClickLabel={onClickLabel}
        fullWidth={fullWidth}
        inline
        reverse
        isAligned
      >
        <AtomRadioButton id={id} {...props} />
      </MoleculeField>
    </div>
  )
}
 
MoleculeRadioButtonField.displayName = 'MoleculeRadioButtonField'
 
MoleculeRadioButtonField.propTypes = {
  /** Text to be displayed as label */
  label: PropTypes.string,
 
  /** React node to be displayed as label if there is not a label */
  nodeLabel: PropTypes.element,
 
  /** used as label for attribute and input element id */
  id: PropTypes.string,
 
  /* onChange callback */
  onChange: PropTypes.func,
 
  /* onClickLabel callback */
  onClickLabel: PropTypes.func,
 
  /** Success message to display when success state  */
  successText: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
 
  /** Error message to display when error state  */
  errorText: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
 
  /** Alert message to display when alert state  */
  alertText: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
 
  /** Help Text to display */
  helpText: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
 
  /** Boolean to decide if elements should be set inline */
  inline: PropTypes.bool,
 
  /** Makes nodeLabelContainer full width */
  fullWidth: PropTypes.bool,
 
  /** set the field status (ERROR, SUCCESS, ALERT) */
  status: PropTypes.oneOf(Object.values(AtomValidationTextTypes)),
 
  /** status field text **/
  statusText: PropTypes.string
}
 
export default MoleculeRadioButtonField
 
export {AtomValidationTextTypes as MoleculeRadioButtonFieldStatus}