DatePicker.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import React, { Component } from 'react'
  2. import PropTypes from 'prop-types'
  3. import classNames from 'classnames'
  4. import Styles from './picker.css'
  5. import { getDateFormatFromSepecificDate } from '../../utils'
  6. class DatePicker extends Component {
  7. constructor(props) {
  8. super(props)
  9. this.state = {
  10. inputFocus: false,
  11. }
  12. this.onInputFocus = this.onInputFocus.bind(this)
  13. this.onInputBlur = this.onInputBlur.bind(this)
  14. this.onInputChange = this.onInputChange.bind(this)
  15. }
  16. onInputFocus() {
  17. this.setState({ inputFocus: true })
  18. }
  19. onInputChange() {
  20. console.log('change')
  21. }
  22. onInputBlur() {
  23. this.setState({ inputFocus: false })
  24. }
  25. render() {
  26. const { inline, defaultDate } = this.props
  27. const { inputFocus } = this.state
  28. return (
  29. <div
  30. className={Styles.container}
  31. style={inline ? { display: 'inline-block' } : {}}
  32. >
  33. <input
  34. type="text"
  35. className={Styles.input}
  36. value={defaultDate}
  37. onFocus={this.onInputFocus}
  38. onBlur={this.onInputBlur}
  39. onChange={this.onInputChange}
  40. />
  41. <i className={Styles.calendar} />
  42. <i className={Styles.close} />
  43. <div className={classNames(Styles.line, { [Styles.inputFocus]: inputFocus })} />
  44. </div>
  45. )
  46. }
  47. }
  48. DatePicker.defaultProps = {
  49. inline: false,
  50. defaultDate: getDateFormatFromSepecificDate(),
  51. }
  52. DatePicker.propTypes = {
  53. inline: PropTypes.bool,
  54. defaultDate: PropTypes.string,
  55. }
  56. export default DatePicker