1 | import React, { PropTypes } from 'react'
|
2 | import classNames from 'classnames'
|
3 |
|
4 | import styles from './styles.css'
|
5 |
|
6 | const propTypes = {
|
7 | className: PropTypes.string,
|
8 | disabled: PropTypes.bool,
|
9 | label: PropTypes.string,
|
10 | name: PropTypes.string,
|
11 | placeholder: PropTypes.string,
|
12 | required: PropTypes.bool,
|
13 | }
|
14 | const defaultProps = {
|
15 | disabled: false,
|
16 | name: '',
|
17 | required: false,
|
18 | }
|
19 |
|
20 | const Input = (props) => {
|
21 | const { className, disabled, label, name, placeholder, required } = props
|
22 | const classes = classNames(
|
23 | styles.Root,
|
24 | { [`${styles['is-disabled']}`]: disabled },
|
25 | { [`${styles['is-required']}`]: required },
|
26 | className
|
27 | )
|
28 |
|
29 | return (
|
30 | <div className={classes}>
|
31 | {label && <label htmlFor={name} className={styles.Label}>{label}</label>}
|
32 | <input
|
33 | {...props}
|
34 | className={styles.Input}
|
35 | disabled={disabled}
|
36 | name={name}
|
37 | placeholder={placeholder}
|
38 | required={required}
|
39 | type="text"
|
40 | />
|
41 | </div>
|
42 | )
|
43 | }
|
44 |
|
45 | Input.propTypes = propTypes
|
46 | Input.defaultProps = defaultProps
|
47 |
|
48 | export default Input
|