UNPKG

ldx-widgets

Version:

widgets

65 lines (50 loc) 1.6 kB
React = require 'react' ReactDatepicker = React.createFactory(require 'react-datepicker') moment = require 'moment' _ = require 'lodash' {div, span} = React.DOM DatePicker = React.createClass displayName: 'DatePicker' propTypes: placeholderText: React.PropTypes.oneOfType [ React.PropTypes.string React.PropTypes.number ] dateFormat: React.PropTypes.string className: React.PropTypes.string minDate: React.PropTypes.object maxDate: React.PropTypes.object onChange: React.PropTypes.func.isRequired tabIndex: React.PropTypes.number selected: React.PropTypes.oneOfType [ React.PropTypes.string React.PropTypes.object ] getDefaultProps: -> placeholderText: 'Select a date' dateFormat: 'MM/DD/YYYY' className: null includeTime: no # yes to include time selection returnDateString: null # pass a date format string to get that format from the getValue method onChange: -> getInitialState: -> selected: @props.selected or moment() render: -> props = _.clone(@props) props.onChange = @handleDateChange mainClass = 'datepicker-wrapper' mainClass += " #{className}" if className? div { className: mainClass }, ReactDatepicker(props) handleDateChange: (date) -> @setState selected: date , => @props.onChange?(date) getValue: -> {returnDateString} = @props {selected} = @state if returnDateString? and selected? then selected.format(returnDateString) else selected or moment() module.exports = DatePicker