Skip to content

Commit

Permalink
start using window.jQuery. fixes #41 and #42.
Browse files Browse the repository at this point in the history
  • Loading branch information
skratchdot committed Oct 26, 2015
1 parent 3256217 commit 3f01103
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 63 deletions.
2 changes: 1 addition & 1 deletion demo/www
Submodule www updated 2 files
+67 −65 js/demo.debug.js
+7 −7 js/demo.min.js
124 changes: 63 additions & 61 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,67 +5,69 @@
* A slightly modified version of bootstrap-daterangepicker.js for use in react and npm.
* Original copyright in: ./node_modules/bootstrap-daterangepicker/
*/
var React = require('react');
var $ = require('jquery');
var DateRangePicker = require('bootstrap-daterangepicker');
var getOptions = require('./get-options.js');
(function (window) {
var React = require('react');
window.jQuery = window.jQuery || require('jquery');
var DateRangePicker = require('bootstrap-daterangepicker');
var getOptions = require('./get-options.js');

/* this is our export React class */
module.exports = React.createClass({
$picker: null,
options: getOptions(),
makeEventHandler: function (eventType) {
return function (event, picker) {
if (typeof this.props.onEvent === 'function') {
this.props.onEvent(event, picker);
}
if (typeof this.props[eventType] === 'function') {
this.props[eventType](event, picker);
}
}.bind(this);
},
getOptionsFromProps: function () {
var options, props = this.props;
this.options.forEach(function (option) {
if (props.hasOwnProperty(option)) {
options = options || {};
options[option] = props[option];
}
});
return options || {};
},
setOptionsFromProps: function () {
var currentOptions = this.getOptionsFromProps();
var keys = Object.keys(currentOptions);
var $this = this;
if ($this.$picker) {
if (currentOptions) {
keys.forEach(function (key) {
$this.$picker.data('daterangepicker')[key] = currentOptions[key];
});
/* this is our export React class */
module.exports = React.createClass({
$picker: null,
options: getOptions(),
makeEventHandler: function (eventType) {
return function (event, picker) {
if (typeof this.props.onEvent === 'function') {
this.props.onEvent(event, picker);
}
if (typeof this.props[eventType] === 'function') {
this.props[eventType](event, picker);
}
}.bind(this);
},
getOptionsFromProps: function () {
var options, props = this.props;
this.options.forEach(function (option) {
if (props.hasOwnProperty(option)) {
options = options || {};
options[option] = props[option];
}
});
return options || {};
},
setOptionsFromProps: function () {
var currentOptions = this.getOptionsFromProps();
var keys = Object.keys(currentOptions);
var $this = this;
if ($this.$picker) {
if (currentOptions) {
keys.forEach(function (key) {
$this.$picker.data('daterangepicker')[key] = currentOptions[key];
});
}
}
},
componentDidMount: function () {
var $this = this;
$this.$picker = window.jQuery(this.refs.picker);
// initialize
$this.$picker.daterangepicker(this.getOptionsFromProps());
// attach event listeners
['Show', 'Hide', 'ShowCalendar', 'HideCalendar', 'Apply', 'Cancel'].forEach(function (event) {
var lcase = event.toLowerCase();
$this.$picker.on(lcase + '.daterangepicker', $this.makeEventHandler('on' + event));
});
},
componentWillUnmount: function () {
this.$picker.data('daterangepicker').remove();
},
render: function () {
this.setOptionsFromProps();
return React.createElement(
'div',
React.__spread({ref: 'picker'}, this.props),
this.props.children
);
}
},
componentDidMount: function () {
var $this = this;
$this.$picker = $(this.refs.picker);
// initialize
$this.$picker.daterangepicker(this.getOptionsFromProps());
// attach event listeners
['Show', 'Hide', 'ShowCalendar', 'HideCalendar', 'Apply', 'Cancel'].forEach(function (event) {
var lcase = event.toLowerCase();
$this.$picker.on(lcase + '.daterangepicker', $this.makeEventHandler('on' + event));
});
},
componentWillUnmount: function () {
this.$picker.data('daterangepicker').remove();
},
render: function () {
this.setOptionsFromProps();
return React.createElement(
'div',
React.__spread({ref: 'picker'}, this.props),
this.props.children
);
}
});
});
}(window || {}));
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-bootstrap-daterangepicker",
"version": "1.0.2",
"version": "1.0.3",
"description": "A date/time picker for react (using bootstrap). This is a react port of: https://github.com/dangrossman/bootstrap-daterangepicker",
"main": "./lib/index.js",
"scripts": {
Expand Down

0 comments on commit 3f01103

Please sign in to comment.