UNPKG

formsy-react-bootstrap

Version:

Integration of formsy validation with bootstrap

76 lines (52 loc) 2.35 kB
'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _reactDatepicker = require('react-datepicker'); var _reactDatepicker2 = _interopRequireDefault(_reactDatepicker); var _formsyReact = require('formsy-react'); var _formsyReact2 = _interopRequireDefault(_formsyReact); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _mixins = require('./mixins'); var _mixins2 = _interopRequireDefault(_mixins); require('react-datepicker/dist/react-datepicker.css'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var propUtilities = require('./propUtilities'); var FormsyDatePicker = _react2.default.createClass({ displayName: 'FormsyDatePicker', mixins: [_formsyReact2.default.Mixin, _mixins2.default], getInitialState: function getInitialState() { return { selected: this.props.value && (0, _moment2.default)(this.props.value, this.props.dateFormat || "DD/MM/YYYY") || null }; }, changeValue: function changeValue(momentObject) { if (momentObject) { var value = momentObject.format(this.props.dateFormat || "DD/MM/YYYY"); this.setValue(value); } else if (momentObject !== null) { this.setValue(momentObject); } else { this.setValue(null); } this.setState({ selected: momentObject }); if (this.props.onChange) { this.props.onChange(momentObject); } }, getMomentObject: function getMomentObject() { return this.state.selected; }, renderElement: function renderElement() { return _react2.default.createElement(_reactDatepicker2.default, _extends({ selected: this.state.selected, onChange: this.changeValue, dateFormat: this.props.dateFormat || "DD/MM/YYYY" }, propUtilities.cleanProps(this.props))); }, render: function render() { if (this.props.elementOnly) return this.renderElement(); var Layout = this.getLayout(); return _react2.default.createElement(Layout.Textarea, { element: this }); } }); module.exports = FormsyDatePicker;