InputGroupText.jsx 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import classnames from 'classnames'
  4. const InputGroupText = props => {
  5. return (
  6. <div className={classnames(`${props.parentClassName}`, props.customClass, 'form-group')}>
  7. <div className={classnames(`${props.parentClassName}__icon`)}>
  8. <i className={classnames('fa fa-fw', props.icon)} />
  9. </div>
  10. <input
  11. type={props.type}
  12. className={classnames(`${props.parentClassName}__input`, 'form-control')}
  13. placeholder={props.placeHolder}
  14. value={props.value}
  15. onChange={props.onChange}
  16. />
  17. <div className={classnames(`${props.parentClassName}__msgerror`, 'invalid-feedback')}>
  18. {props.invalidMsg}
  19. </div>
  20. </div>
  21. )
  22. }
  23. export default InputGroupText
  24. InputGroupText.propTypes = {
  25. parentClassName: PropTypes.string.isRequired,
  26. value: PropTypes.string.isRequired,
  27. type: PropTypes.oneOf(['text', 'email', 'password', 'tel']).isRequired,
  28. customClass: PropTypes.string,
  29. icon: PropTypes.string,
  30. placeHolder: PropTypes.string,
  31. invalidMsg: PropTypes.string,
  32. onChange: PropTypes.func
  33. }
  34. InputGroupText.defaultProps = {
  35. customClass: '',
  36. icon: false,
  37. placeHolder: '',
  38. invalidMsg: false,
  39. onChange: () => {}
  40. }